我们在使用tar的时候,有时候需要排除要压缩的目录下某个子目录,这时候,我们需要使用--exclude,但是我们遇到了一个问题,就是它和要压缩的目录相对路径和绝对路径选择问题。例如:
[root@nanhuang ~]# tar cvzf aa.tar.gz --exclude=/root/scripts/yum scripts
要压缩的目录scripts是相对路径,而--exclude使用的是绝对路径。则结果不能成功排除yum子目录。
解决的办法是:
如果要压缩的目录是相对路径。排除的子目录必须也是相对路径。
如果要压缩的目录是绝对路径。排除的子目录即可以是想对路径,也可以是绝对路径。
[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排除。
[root@nanhuang ~]# tar cvzf scripts/aa.tar.gz --exclude=/root/scripts/yum --exclude=aa.tar.gz /root/scripts