Linux 压缩 怎样只压缩文件,不要包含路径?

比如执行如下命令:
tar -zcvf
/home/zhanglei/test.tar.gz /home/zhanglei/server/file/20110831152025/119090/*
其中 目标路径/home/zhanglei/server/file/20110831152025/119090/下有两文件1.txt,2.txt,
压缩后的压缩包test.tar.gz ,把/home/zhanglei/server/file/20110831152025/119090/这些文件夹也包含进去了,怎样才能让test.tar.gz 里面只有1.txt,2.txt,没有那些路径呢?

因为你压缩时使用的是绝对路径,而tar会保留原来的目录结构。

假如我执行的是:
[root@localhost home]#tar -zcvf test.tar.gz /home/june/*.txt
打开得到的压缩包可以看到里面包含了1.txt和2.txt的完整路径目录结构,即home/azune/june

所以如果只是日常压缩解压的话,可以用相对路径,或者直接cd到该目录下进行,假如我压缩的是/home/azune/june下的a.txt和b.txt:
cd /home/azune/june
tar -zcvf /home/azune/test.tar.gz /*.txt
那么现在 test.tar.gz 就不会包含任何目录结构了,假如我要解压到 /test 下,不管是 cd 到 /test 下再解压还是用 -C 指定解压到 /test ,在/test 下得到的文件都是 a.txt 和 b.txt

这是个人的一点小见解,仅供参考。
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-11-16
cd到你不需要目录的文件夹,然后tar -cjf /路径/压缩文件名.tar.bz2 *
比如,你home/test/里面很多文件和文件夹,你想把他们压缩到一个压缩文件,但是压缩文件里面不包含test目录,就可以执行:先cd /home/test 然后,执行:
tar -cjf /home/test/test.tar.bz2 *
就可以了
第2个回答  2011-09-29
呃··· -C /home/zhanglei/server/file/20110831152025/119090/看看行不行
第3个回答  2011-09-29
tar -zcvf
/home/zhanglei/test.tar.gz /home/zhanglei/server/file/20110831152025/119090/*.txt
第4个回答  2019-09-10
tar -zcvf /home/zhanglei/test.tar.gz -C /home/zhanglei/server/file/20110831152025/119090/ *
tar -zcvf /home/zhanglei/test.tar.gz /home/zhanglei/server/file/20110831152025/119090/ 注意这里有空格*
相似回答