当我尝试使用绝对路径使用 tar
压缩文件和目录时,绝对路径会保留在生成的压缩文件中。我需要使用绝对路径来告诉 tar
我想要压缩的文件夹所在的位置,但我只希望它压缩该文件夹 - 而不是整个路径。
例如,tar -cvzf test.tar.gz/home/path/test
– 我想在其中压缩文件夹test
。然而,我实际上最终压缩的是/home/path/test
。有什么办法可以避免这种情况吗?我尝试使用 -C 操作数但无济于事。
最佳答案
这很丑......但它有效......
我也遇到了同样的问题,但对于多个文件夹,我只想将每个文件展平。您可以使用选项“transform”来传递 sed 表达式......它按预期工作。
这是表达式:
's/.*\///g'
(删除“/”之前的所有内容)
这是最终命令:
tar --transform 's/.*\///g' -zcvf tarballName.tgz */*/*.info
关于shell - Unix tar : do not preserve full pathnames,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13924856/