咱们在使用tar的时候,有时候须要排除要压缩的目录下某个子目录,这时候,咱们须要使用--exclude,可是咱们遇到了一个问题,就是它和要压缩的目录相对路径和绝对路径选择问题。例如: shell
[root@nanhuang ~]# tar cvzf aa.tar.gz --exclude=/root/scripts/yum scripts
要压缩的目录scripts是相对路径,而--exclude使用的是绝对路径。则结果不能成功排除yum子目录。 spa
解决的办法是: code
若是要压缩的目录是相对路径。排除的子目录必须也是相对路径。 ip
若是要压缩的目录是绝对路径。排除的子目录便可以是想对路径,也能够是绝对路径。 class
[root@nanhuang ~]# tar cvzf aa.tar.gz --exclude=yum /root/scripts [root@nanhuang ~]# tar cvzf aa.tar.gz --exclude=scripts/yum /root/scripts [root@nanhuang ~]# tar cvzf aa.tar.gz --exclude=yum scripts [root@nanhuang ~]# tar cvzf aa.tar.gz --exclude=scripts/yum scripts [root@nanhuang ~]# tar cvzf aa.tar.gz --exclude=/root/scripts/yum /root/scripts
若是,压缩文件存在于要压缩的目录下,则也要--exclude排除。 yum
[root@nanhuang ~]# tar cvzf scripts/aa.tar.gz --exclude=/root/scripts/yum --exclude=aa.tar.gz /root/scripts