Joh*_*sua -2 linux command-line tar archive gzip
我正在尝试创建一个存档:
$ cd /tmp
$ tar -czf test1.tar.gz -C ~/Downloads/dir1 -C ~/Documents/dir2 -C ~/dir3/dir4/dir5
Run Code Online (Sandbox Code Playgroud)
...这不应该保留其中目录的完整路径,因此-C
结果
tar: Cowardly refusing to create an empty archive
Try 'tar --help' or 'tar --usage' for more information.
Run Code Online (Sandbox Code Playgroud)
为什么?如何修复它?
您的命令在概念上等同于:
tar -czf test1.tar.gz -C ~/Downloads/dir1 "" -C ~/Documents/dir2 "" -C ~/dir3/dir4/dir5 ""
Run Code Online (Sandbox Code Playgroud)
用人类的话来说:
tar -czf test1.tar.gz:“制作一个名为test1.tar.gz当前工作目录的 gzipped tar 存档,如下所示:...”-C ~/Downloads/dir1 "":“...首先,切换到目录~/Downloads/dir1,然后从那里归档任何内容...”-C ~/Documents/dir2 "":“...然后,切换到目录~/Documents/dir2并从那里归档任何内容...”-C ~/dir3/dir4/dir5 "":“......最后,切换到~/dir3/dir4/dir5那里也不存档任何内容。”你可能想要这样的东西:
tar -czf test1.tar.gz -C ~/Downloads/dir1 . -C ~/Documents/dir2 . -C ~/dir3/dir4/dir5 .
Run Code Online (Sandbox Code Playgroud)
这会将“不存档”部分替换为“存档当前目录的内容”,后者刚刚切换为使用该-C选项。
dir1请注意,当您提取生成的存档时, 、dir2和的存档内容dir5将全部提取到提取时的当前目录中。如果这就是您想要的,那就很好,但这是一个稍微不寻常的用例。(这样的存档被称为焦油炸弹,当意外遇到时通常不受欢迎,因为它不会整齐地提取到提取过程创建的单个目录中。)
为了便于解释,这里有一个略有不同的命令:
tar -czf test2.tar.gz -C ~/Downloads dir1 -C ~/Documents dir2 -C ~/dir3/dir4 dir5
Run Code Online (Sandbox Code Playgroud)
当test2.tar.gz提取时,将导致:
./dir1
./dir2
./dir5
Run Code Online (Sandbox Code Playgroud)
...及其内容。
| 归档时间: |
|
| 查看次数: |
11772 次 |
| 最近记录: |