操做系統信息:
[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)建議打包的目錄和排除的文件使用的使用路徑時,保持一致,都是用絕對路徑,或都是用相對路徑