Linux tar命令一个实用的参数--strip-component

一、介绍

在解压文件的时候,如果压缩包中的文件存在多级目录。解压出来的时候如果你不想要这些多级目录,你就可以使用–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     #解压压缩包就可以达到去除多级目录的目的

猜你喜欢

转载自blog.csdn.net/zfw_666666/article/details/128576086