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
相关文章
相关标签/搜索