tar使用--exclude參數遇到的問題。

咱們在使用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
相關文章
相關標籤/搜索