通过“tar c ...”命令生成tar + gzip时,是否有可能在扩展时忽略相对路径?

例如,

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

然后使用以下命令扩展test.tgz
tar xvf test.tgz

给出一个包含以下内容的目录:
foo files/bar

我希望目录包含文件:
foo bar

这可能吗?

最佳答案

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

否则,我想出的唯一方法是建立一个充满适当符号链接(symbolic link)的临时目录,并使用-h选项通过符号链接(symbolic link)取消引用。当然,如果您要存储的某些文件实际上是符号链接(symbolic link),那将是行不通的。

10-07 19:15
查看更多