现在有一个需求,不知道该如何才能实现 压缩: # 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
|