一、介绍
在解压文件的时候,如果压缩包中的文件存在多级目录。解压出来的时候如果你不想要这些多级目录,你就可以使用–strip-component参数来实现。
二、举例
2.1 提前准备一个压缩文件
[root@docker][15:04:14][OK] ~/test
#tar tf work.tar.gz
work-1/
work-1/dir-1/
work-1/dir-1/1.txt
work-2/
work-2/dir-2/
work-2/dir-2/2.txt
work-3/
work-3/dir-3/
work-3/dir-3/3.txt
2.2 正常解压(原封不动将压缩包里的目录结构解压出来)
[root@docker][15:05:13][OK] ~/test
#tar xf work.tar.gz -C /root/tar
[root@docker][15:07:00][OK] ~/test
#ll /root/tar/
total 0
drwxr-xr-x 3 root root 19 Feb 3 15:03 work-1
drwxr-xr-x 3 root root 19 Feb 3 15:03 work-2
drwxr-xr-x 3 root root 19 Feb 3 15:03 work-3
[root@docker][15:07:05][OK] ~/test
#tree /root/tar/
/root/tar/
├── work-1
│ └── dir-1
│ └── 1.txt
├── work-2
│ └── dir-2
│ └── 2.txt
└── work-3
└── dir-3
└── 3.txt
6 directories, 3 files
2.3 添加参数--strip-components 1(去除第一层目录结构)
[root@docker][15:07:40][OK] ~/test
#tar xf work.tar.gz -C /root/tar/ --strip-components 1
[root@docker][15:08:10][OK] ~/test
#tree /root/tar/
/root/tar/
├── dir-1
│ └── 1.txt
├── dir-2
│ └── 2.txt
└── dir-3
└── 3.txt
3 directories, 3 files
2.4 添加参数--strip-components 2(去除二层目录结构)
[root@docker][15:10:02][OK] ~/test
#tar xf work.tar.gz -C /root/tar/ --strip-components 2
[root@docker][15:10:06][OK] ~/test
#tree /root/tar/
/root/tar/
├── 1.txt
├── 2.txt
└── 3.txt
0 directories, 3 files
三、结论
通过--strip-components $num #解压压缩包就可以达到去除多级目录的目的