热搜词
发表于 2016-6-10 14:38:53 | 显示全部楼层 |阅读模式
现在有一个需求,不知道该如何才能实现
压缩:
# tar czvf /data/backup/test.tar.gz /data/a/b/directory

解压:
#cd /data/test
#tar xzvf /data/backup/test.tar.gz

问题是,解压后的文件,在/data/test/data/a/b/directory里面
能否压缩时只保留directory里面的所有文件和目录,而不含/data/a/b/directory路径本身?

问题已经解决,这样写就可以解决了
# tar czvf /data/backup/test.tar.gz /data/a/b/directory
改成
# tar czvf /data/backup/test.tar.gz -C /data/a/b/directory *

其中  -C 是临时切换工作目录,这样压缩时就包含/data/a/b/directory路径了


------------------------------------------------------------------------------------
另一种解决相对路径的方案:
因为你压缩时使用的是绝对路径,而tar会保留原来的目录结构。

假如我执行的是:
#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


全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2025-2-23 22:56 , Processed in 0.179959 second(s), 22 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2025 Discuz! Team