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-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
解压后结果如下: