咱們在使用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