操作系统信息:
1[root@nfs01 ~]# cat /etc/redhat-release 2CentOS release 6.9 (Final) 3[root@nfs01 ~]# uname -r 42.6.32-696.el6.x86_64 5[root@nfs01 ~]# uname -m 6x86_64
参数:
--exclude 打包时排除不需要处理的文件或目录
说明:
tar -zcf a.tar.gz 打包的目录 --exclude=指定排除的文件所在的路径
1)打包的目录使用相对路径,排除的文件只能接相对路径
2)打包的目录使用绝对路径,排除的文件接相对路径或绝对路径
3)建议打包的目录和排除的文件使用的使用路径时,保持一致,都是用绝对路径,或都是用相对路径
测试环境准备
1[root@nfs01 doc]# pwd 2/root/doc 3 4[root@nfs01 doc]# tree 5. 6└── data 7 ├── a.txt 8 ├── doc 9 │ └── b.txt 10 └── scripts 11 └── c.txt 12 133 directories, 3 files
测试排除c.txt文件
1)打包的目录为绝对路径,--exclude后绝对路径
1[root@nfs01 doc]# tar -zcf /tmp/a.tar.gz /root/doc/* --exclude=/root/doc/data/scripts/c.txt 2tar: Removing leading `/' from member names 3[root@nfs01 doc]# tar -tf /tmp/a.tar.gz | grep c.txt 4[root@nfs01 doc]#根据结果,可知已排除c.txt文件
2)打包的目录为绝对路径,--exclude后相对路径
1[root@nfs01 doc]# tar -zcf /tmp/b.tar.gz /root/doc/* --exclude=data/scripts/c.txt 2tar: Removing leading `/' from member names 3[root@nfs01 doc]# tar -tf /tmp/b.tar.gz | grep c.txt根据结果,可知已排除c.txt文件
1[root@nfs01 doc]# tar -zcf /tmp/c.tar.gz /root/doc/* --exclude=c.txt 2tar: Removing leading `/' from member names 3[root@nfs01 doc]# tar -tf /tmp/c.tar.gz | grep c.txt根据结果,可知已排除c.txt文件
3)打包的目录为相对路径,--exclude后绝对路径
1[root@nfs01 doc]# tar -zcf /tmp/d.tar.gz ./* --exclude=/root/doc/data/scripts/c.txt 2[root@nfs01 doc]# tar -tf /tmp/d.tar.gz | grep c.txt 3./data/scripts/c.txt发现结果中并未排除c.txt文件
4)打包的目录为相对路径,--exclude后相对路径
1[root@nfs01 doc]# tar -zcf /tmp/e.tar.gz ./* --exclude=c.txt 2[root@nfs01 doc]# tar -tf /tmp/e.tar.gz | grep c.txt根据结果,可知已排除c.txt文件
总结:
tar -zcf a.tar.gz 打包的目录 --exclude=指定排除的文件所在的路径
1)打包的目录使用相对路径,排除的文件只能接相对路径
2)打包的目录使用绝对路径,排除的文件接相对路径或绝对路径
3)建议打包的目录和排除的文件使用的使用路径时,保持一致,都是用绝对路径,或都是用相对路径