我想把里面的内容打焦油/一些/目录/这个目录中有很多文件和其他子目录。
以下 tar 命令之间的实际区别是什么,我注意到与第一个命令相比,后一个命令在 tar 存档中包含更多文件。
我通过tar -tvf | wc -l
在每个存档上使用进行比较
cd /some/directory/
tar -cvf /tmp/directory.tar *
相比
tar -cvf /tmp/directory.tar -C /some/directory/ .
答案1
第一个命令将递归地调用模式匹配的tar
所有文件。这些通常都是非隐藏文件。如果您使用的是,则需要在运行命令之前启用shell 选项 来匹配隐藏文件。/some/directory
*
bash
dotglob
shopt -s dotglob
第二个命令将目录更改为/some/directory
并包含当前目录.
以及其中的所有文件(包括隐藏文件)。它还将其./
作为父目录添加到存档中。您可以使用 看到这个附加文件夹tar tf /tmp/directory.tar
,但提取时与第一个命令没有区别(除了缺少隐藏文件并且第二个存档中的所有文件都以相对路径为前缀./
)