通过'tar c ...'命令制作tar + gzip时,是否有可能在扩展时忽略相对路径?
例如,
tar cvf test.tgz foo ../../files/bar
然后用
扩展test.tgztar xvf test.tgz
给出一个包含以下内容的目录:
foo files/bar
我希望目录包含文件:
foo bar
这可能吗?
答案 0 :(得分:4)
如果所有路径都以相同的初始目录列表开头,那么您可以使用例如tar cvf test.tgz -C ../.. other/dir
。请注意,shell不会“正确”地扩展路径名中的通配符,但是因为-C
要求tar
更改目录。
否则,我唯一想到的方法是使用适当的符号链接创建一个临时目录,并使用-h
选项通过符号链接解除引用。当然,如果您要存储的某些文件本身就是符号链接,那么这将不起作用。