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)建议打包的目录和排除的文件使用的使用路径时,保持一致,都是用绝对路径,或都是用相对路径

相关文章
相关标签/搜索