创建当前目录的 tar 归档文件,前面不带句点

创建当前目录的 tar 归档文件,前面不带句点

当我执行以下操作时:

tar czvf ../myarchive.tar.gz ./

我的 tar 存档中有一个(烦人的)根文件夹:

恼人的

创建存档时如何删除这个可怕的时期?

答案1

出现这个点是因为tar按照您在参数中给出的方式创建路径结构。所以正如你所给予的作为源,存档也以相同的结构创建。

你可以试试这个(注意:这不会匹配隐藏文件):

tar -czvf ../myarchive.tar.gz *

使用 n.st 的评论和 zhoux 的回答中的信息进行更新

tar --xform s:'^./':: -czvf ../myarchive.tar.gz ./

答案2

你不知道。

name=${PWD##*/}
cd ..
tar czf "$name.tar.gz" "$name"

(注意:如果您的 shell 打开了当前目录符号链接跟踪并且通过符号链接访问当前目录,则此操作不起作用。)

是的,这不是你要求的,但这是你应该做的。在当前目录中展开大量文件的存档很烦人:它给每个解压存档的人带来了为文件创建目标目录的负担,如果他们不小心将它们解压到非空目录中,则很难清理。大多数时候,存档应该创建一个顶级目录,其名称是存档的基本名称。

答案3

最好在前面添加 ^ 。

tar --xform s:'^./':: -czvf ../myarchive.tar.gz ./

或者,存档内完整路径名中的所有“/”都将被删除,除非“/”是完整路径名的末尾。

相关内容