当我尝试tar使用绝对路径压缩文件和目录时,绝对路径将保留在生成的压缩文件中.我需要使用绝对路径来告诉tar我希望压缩的文件夹位于何处,但我只希望它压缩该文件夹 - 而不是整个路径.
例如,tar -cvzf test.tar.gz /home/path/test- 我要压缩文件夹的位置test.但是,我实际上最终压缩的是/home/path/test.有什么办法可以避免这种情况吗?我试过玩-C操作数无济于事.
小智 28
这很难看......但它有效......
我有同样的问题,但有多个文件夹,我只是想平掉每个文件.您可以使用选项"transform"来传递sed表达式......它可以按预期工作.
这是表达式:
's/.*\///g' (删除'/'之前的所有内容)
这是最后的命令:
tar --transform 's/.*\///g' -zcvf tarballName.tgz */*/*.info
Run Code Online (Sandbox Code Playgroud)
Mar*_*eed 21
使用-C指定的目录从这些文件看起来像你想,然后从该目录中看到指定的文件:
tar -cvzf test.tar.gz -C /home/path test
Run Code Online (Sandbox Code Playgroud)