当我执行以下操作时:
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)
你没有。
name=${PWD##*/}
cd ..
tar czf "$name.tar.gz" "$name"
Run Code Online (Sandbox Code Playgroud)
(注意:如果你的 shell 开启了当前目录符号链接跟踪并且当前目录是通过符号链接访问的,这将不起作用。)
是的,这不是你问的,但这是你应该做的。在当前目录中展开大量文件的归档很烦人:它把为文件创建目标目录的负担放在每个解压归档的人身上,如果他们不小心将它们解压到一个非空目录中,很难清理。大多数情况下,档案应该创建一个单一的顶级目录,其名称是档案的基本名称。