通过“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),那将是行不通的。