使Tar + gzip忽略目录路径

时间:2010-05-24 15:18:41

标签: linux bash

通过'tar c ...'命令制作tar + gzip时,是否有可能在扩展时忽略相对路径?

例如,

tar cvf test.tgz foo ../../files/bar

然后用

扩展test.tgz
tar xvf test.tgz

给出一个包含以下内容的目录:

foo files/bar

我希望目录包含文件:

foo bar

这可能吗?

1 个答案:

答案 0 :(得分:4)

如果所有路径都以相同的初始目录列表开头,那么您可以使用例如tar cvf test.tgz -C ../.. other/dir。请注意,shell不会“正确”地扩展路径名中的通配符,但是因为-C要求tar更改目录。

否则,我唯一想到的方法是使用适当的符号链接创建一个临时目录,并使用-h选项通过符号链接解除引用。当然,如果您要存储的某些文件本身就是符号链接,那么这将不起作用。