创建当前目录的 tar 存档,没有前面的句点

Naf*_*Kay 12 tar

当我执行以下操作时:

tar czvf ../myarchive.tar.gz ./
Run Code Online (Sandbox Code Playgroud)

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

恼人的

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

beg*_*ner 11

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

你可以试试这个并检查:

tar -czvf ../myarchive.tar.gz *
Run Code Online (Sandbox Code Playgroud)

在 n.st 的评论的帮助下更新答案

tar --xform s:'./':: -czvf ../myarchive.tar.gz ./
Run Code Online (Sandbox Code Playgroud)

  • `*` glob 不会匹配隐藏文件。 (2认同)

Gil*_*il' 6

你没有。

name=${PWD##*/}
cd ..
tar czf "$name.tar.gz" "$name"
Run Code Online (Sandbox Code Playgroud)

(注意:如果你的 shell 开启了当前目录符号链接跟踪并且当前目录是通过符号链接访问的,这将不起作用。)

是的,这不是你问的,但这是你应该做的。在当前目录中展开大量文件的归档很烦人:它把为文件创建目标目录的负担放在每个解压归档的人身上,如果他们不小心将它们解压到一个非空目录中,很难清理。大多数情况下,档案应该创建一个单一的顶级目录,其名称是档案的基本名称。