tar命令之--exclude參數 排除指定的文件或目錄

操做系統信息:

[root@nfs01 ~]# cat /etc/redhat-release 
CentOS release 6.9 (Final)
[root@nfs01 ~]# uname -r
2.6.32-696.el6.x86_64
[root@nfs01 ~]# uname -m
x86_64

 

參數:

    --exclude  打包時排除不須要處理的文件或目錄測試

說明:spa

    tar -zcf a.tar.gz  打包的目錄 --exclude=指定排除的文件所在的路徑操作系統

    1)打包的目錄使用相對路徑,排除的文件只能接相對路徑code

    2)打包的目錄使用絕對路徑,排除的文件接相對路徑或絕對路徑ip

    3)建議打包的目錄和排除的文件使用的使用路徑時,保持一致,都是用絕對路徑,或都是用相對路徑打包

 測試環境準備

[root@nfs01 doc]# pwd
/root/doc

[root@nfs01 doc]# tree
.
└── data
    ├── a.txt
    ├── doc
    │   └── b.txt
    └── scripts
        └── c.txt

3 directories, 3 files

測試排除c.txt文件

1)打包的目錄爲絕對路徑,--exclude後絕對路徑

[root@nfs01 doc]# tar -zcf /tmp/a.tar.gz /root/doc/* --exclude=/root/doc/data/scripts/c.txt
tar: Removing leading `/' from member names
[root@nfs01 doc]# tar -tf /tmp/a.tar.gz | grep c.txt
[root@nfs01 doc]#

根據結果,可知已排除c.txt文件file

2)打包的目錄爲絕對路徑,--exclude後相對路徑

[root@nfs01 doc]# tar -zcf /tmp/b.tar.gz /root/doc/* --exclude=data/scripts/c.txt
tar: Removing leading `/' from member names
[root@nfs01 doc]# tar -tf /tmp/b.tar.gz | grep c.txt

根據結果,可知已排除c.txt文件grep

[root@nfs01 doc]# tar -zcf /tmp/c.tar.gz /root/doc/* --exclude=c.txt
tar: Removing leading `/' from member names
[root@nfs01 doc]# tar -tf /tmp/c.tar.gz | grep c.txt

根據結果,可知已排除c.txt文件總結

3)打包的目錄爲相對路徑,--exclude後絕對路徑

[root@nfs01 doc]# tar -zcf /tmp/d.tar.gz ./* --exclude=/root/doc/data/scripts/c.txt
[root@nfs01 doc]# tar -tf /tmp/d.tar.gz | grep c.txt
./data/scripts/c.txt

    發現結果中並未排除c.txt文件  ember

4)打包的目錄爲相對路徑,--exclude後相對路徑

[root@nfs01 doc]# tar -zcf /tmp/e.tar.gz ./* --exclude=c.txt
[root@nfs01 doc]# tar -tf /tmp/e.tar.gz | grep c.txt

根據結果,可知已排除c.txt文件

總結:

tar -zcf a.tar.gz  打包的目錄 --exclude=指定排除的文件所在的路徑

1)打包的目錄使用相對路徑,排除的文件只能接相對路徑

2)打包的目錄使用絕對路徑,排除的文件接相對路徑或絕對路徑

3)建議打包的目錄和排除的文件使用的使用路徑時,保持一致,都是用絕對路徑,或都是用相對路徑

相關文章
相關標籤/搜索