我正在尝试使用以下命令从目录中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操作?
答案 0 :(得分:0)
不幸的是,我不认为你可以在使用-C
时这样做。 (-C
在我的使用中有一些非常严重的限制。)
我认为你需要使用这样的东西:
(dir=$PWD; shopt -s nullglob; cd /tmp/sjohal/okay && tar -czvf $dir/archive.tgz .[!.]* ..?* *)
.[!.]*
匹配带有前导单个点的文件,后跟任何不是点的文件。..?*
匹配带有两个前导点和至少一个其他角色的文件。*
匹配所有普通(非点)文件。或者,您可以对tarball进行后期处理,以删除./
条目,如果您想要修复的话。