或--strip-components参数来实现。
参数详情:
--strip-components NUMBER, --strip-path NUMBER
strip NUMBER of leading components from file names before extraction
(1) tar-1.14 uses --strip-path, tar-1.14.90+ uses --strip-components去除文件名前的NUMBER
层路径,如:
test.tar.gz中包含目录123/xxx/conf.xml,只要conf.xml文件,就要去除文件名前2层路径,命令为:
tar
zxvf test.tar.gz
--strip-components
2
123/xxx/conf.xml
ls conf.xml
查看结果
#去除一层,命令为:
tar
zxvf test.tar.gz
--strip-components
1
123/xxx/conf.xml
ls
./xxx/conf.xml
查看结果
因为你压缩时使用的是绝对路径,而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/junetar -zcvf /home/azune/test.tar.gz /*.txt那么现在 test.tar.gz 就不会包含任何目录结构了,假如我要解压到 /test 下,不管是 cd 到 /test 下再解压还是用 -C 指定解压到 /test ,在/test 下得到的文件都是 a.txt 和 b.txt这是个人的一点小见解,仅供参考。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)