在解压文件的时候,如果压缩包中的文件存在多级目录。解压出来的时候如果你不想要这些多级目录,你就可以使用--strip-component参数来实现。
来看个例子:
1、查看压缩文件
```bash
~]# tar -ztvf /tmp/pkg.tgz
drwxr-xr-x root/root 0 2022-05-17 19:05 pigsty/
-rw-r--r-- root/root 19244 2014-07-04 12:15 pigsty/perl-constant-1.27-2.el7.noarch.rpm
-rw-r--r-- root/root 8360316 2021-02-04 00:48 pigsty/perl-5.16.3-299.el7_9.x86_64.rpm
drwxr-xr-x root/root 0 2022-05-17 17:52 pigsty/Python/ target=_blank class=infotextkey>Python/
-rw-r--r-- root/root 1723581 2022-05-17 16:18 pigsty/python/pip-21.3.1-py3-none-any.whl
-rw-r--r-- root/root 8529644 2022-05-17 16:18 pigsty/python/jupyterlab-3.2.9-py3-none-any.whl
-rw-r--r-- root/root 133630 2022-05-17 16:18 pigsty/python/Jinja2-3.0.3-py3-none-any.whl
-rw-r--r-- root/root 396512 2022-05-17 16:18 pigsty/python/jupyter_server-1.13.1-py3-none-any.whl
-rw-r--r-- root/root 86914 2022-05-17 16:18 pigsty/python/jupyter_core-4.9.2-py3-none-any.whl
```
2、需要把pkg包下的文件解压到/www/pigst中
先来看下不带参数的时候
```bash
mkdir -p /www/pigst
tar -xf /tmp/pkg.tgz -C /www/pigst
```
你会发现目录层级是包含压缩包中的目录层级的。
3、带上--strip-component参数解压
--strip-components=NUMBER 解压时从文件名中清除 NUMBER个引导部分
--strip-component=1 代表解压出来的文件,剥离前一个路径
--strip-component=2 代表解压出来的文件,剥离前两个路径
```bash
tar -xf /tmp/pkg.tgz --strip-component=1 -C /www/pigst
tar -xf /tmp/pkg.tgz --strip-component=2 -C /www/pigst
```