如何创建没有顶级目录的tar文件

时间:2015-05-21 11:30:57

标签: bash shell unix command tar

我正在尝试使用以下命令从目录中tar文件:

tar -cvzf archive.tgz -C /tmp/sjohal/okay .

但是我不希望我的tar文件包含顶行“./” 如下面的输出所示:

drwxrwx--- cfes/cfes         0 2015-05-21 12:24:53 ./
-rw-rw---- cfes/cfes         0 2015-05-21 12:24:53 ./file3
-rw-rw---- cfes/cfes         0 2015-05-21 12:24:48 ./file1
-rw-rw---- cfes/cfes         0 2015-05-21 12:24:52 ./file2

如何在没有在“./”中添加顶行的情况下对文件进行tar操作?

1 个答案:

答案 0 :(得分:0)

不幸的是,我不认为你可以在使用-C时这样做。 (-C在我的使用中有一些非常严重的限制。)

我认为你需要使用这样的东西:

(dir=$PWD; shopt -s nullglob; cd /tmp/sjohal/okay && tar -czvf $dir/archive.tgz .[!.]* ..?* *)
  • .[!.]*匹配带有前导单个点的文件,后跟任何不是点的文件。
  • ..?*匹配带有两个前导点和至少一个其他角色的文件。
  • *匹配所有普通(非点)文件。

或者,您可以对tarball进行后期处理,以删除./条目,如果您想要修复的话。