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后面排除文件里的路径为相对路径的时候,打包路径为相对或者绝对路径都可以。
版权归原作者 狄国良 所有, 如有侵权,请联系我们删除。