tar命令解压时如何去除目录结构及其解压到指定目录

tar命令解压时如何去除目录结构及其解压到指定目录

去除目录结构加上 –strip-components N

用法举例

我在phpmyadmin目录下面解压:phpMyAdmin-5.2.0-all-languages.tar.gz

 sudo tar -xvf phpMyAdmin-5.2.0-all-languages.tar.gz  -C /usr/share/nginx/html/phpmyadmin

解压之后生成下面文件

[root@ip-172-31-2-29 phpmyadmin]# ls -al
total 12188
drwxr-xr-x  3 nginx nginx       89 Sep 22 02:46 .
drwxr-xr-x  4 nginx nginx       94 Sep 21 09:58 ..
drwxr-xr-x 12 root  root      4096 May 11 04:39 phpMyAdmin-5.2.0-all-languages
-rw-r--r--  1 root  root  12474799 May 11 13:16 phpMyAdmin-5.2.0-all-languages.tar.gz
phpmyadmin

由于phpmyadmin文件内容在phpMyAdmin-5.2.0-all-languages下面,我想直接在/usr/share/nginx/html/phpmyadmin 里面运行,就必须把文件内容拷贝过来。有没有办法在解压的时候不出现phpMyAdmin-5.2.0-all-languages,直接将内容解压到/usr/share/nginx/html/phpmyadmin 里面呢,那就必须使用 “–strip-components N”

“–strip-components 1” 去掉解压后文件夹的第一层:phpMyAdmin-5.2.0-all-languages,N代表去掉第几层文件夹。

在解压的时候,如果想指定解压目录,可以加参数-C 目标目

在这里我们使用下面命令操作,就可以直接将文件解压到 /usr/share/nginx/html/phpmyadmin 里面

sudo tar -xvf phpMyAdmin-5.2.0-all-languages.tar.gz -C /usr/share/nginx/html/phpmyadmin --strip-components 1

解压后结果如下:

phpmyadmin