1、tar解压文件至指定目录,不包含原目录

要解压的压缩包原目录结构如下
在这里插入图片描述

通过 --strip-components 1 参数 解压到指定目录或当前目录(不含打包前原目录)

 tar zxf log.tar.gz --strip-components 1 -C /opt/new_test

注: --strip-components 1 解压至下一级目录,若为2则解压至下下级目录

2、压缩只指定的目录,不包含原目录
前提:未压缩之前的目录如下:
/opt/test/111.log
/opt/test/222.log
/opt/test/333.log

我们将test目录中的文件压缩至指定目录new_test,但不包含原目录test
(需要进入test目录执行压缩命令)

tar -cvzf log.tar.gz *
tar -xvzf log.tar.gz -C /opt/new_test/

在这里插入图片描述

3、采用–exclude排除某个目录或文件不打包
#两者等价,排除111.log文件进行压缩

tar cvzf log.tar.gz /opt/web/test/ --exclude=/opt/web/test/111.log
tar cvzf log.tar.gz test/ --exclude=test/111.log

tar -zvcf a.tar.gz 打包的目录 --exclude=指定排除的文件所在的路径 注:“打包的目录”会在包含于压缩包

总结:
1、tar命令下的–exclude后面可以跟”=“或者空格,效果一样。
2、tar命令下的–exclude后面跟文件名,会排除所有和此名相同的文件。
3、tar命令下的–exclude后面跟排除文件的路径为绝对路径的时候,打包路径也必须为绝对路径。
4、tar命令下的–exclude后面跟排除文件的路径为相对路径的时候,打包路径为相对或者绝对路径都可以。
5、tar命令下的–exclude-from后面排除文件里的路径为绝对路径的时候,打包路径也必须为绝对路径。
6、tar命令下的–exclude-from后面排除文件里的路径为相对路径的时候,打包路径为相对或者绝对路径都可以。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐