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  打包时排除不需要处理的文件或目录 说明:     tar -zcf a.tar.gz  打包的目录 --exclude=指定排除的文件所在的路径     1)打包的目录使用相对路径,排除的文件只能接相对路径     2)打包的目录使用绝对路径,排除的文件接相对路径或绝对路径     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文件

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文件

[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文件  

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏calvin

vs2017 rc 离线安装包制作

1.下载在线安装包:https://aka.ms/vs/15/release/vs_Enterprise.exe 2.制作离线安装包: vs_Enterpri...

34830
来自专栏Java技术分享

查看zookeeper注册中心是否有注册服务

查看zookeeper注册中心是否有注册服务可以在服务器上看,也可以在dubboadmin看哦~

381100
来自专栏Java技术分享

查看zookeeper注册中心是否有注册服务

查看zookeeper注册中心是否有注册服务可以在服务器上看,也可以在dubboadmin看哦~ 1.在服务器上看: 1)查找zookeeper的目录; fin...

21880
来自专栏LanceToBigData

MySQL(二)之服务管理与配置文件修改和连接MySQL

上一篇给大家介绍了怎么在linux和windows中安装mysql,本来是可以放在首页的,但是博客园说“安装配置类文件”不让放在首页。接下来给大家介绍一下在li...

25880
来自专栏惨绿少年

OpenSUSE 服务器系统部署

1、准备 1.1 下载系统 下载地址:https://software.opensuse.org/distributions/leap     目前的最新版本为...

45370
来自专栏散尽浮华

python案例-用户登录

要求: •输入用户名密码 •认证成功后显示欢迎信息 •输错三次后锁定 1 #!/usr/bin/env python 2 # -*- coding:utf-...

31370
来自专栏深度学习之tensorflow实战篇

windows 下对Redis的安装和部署以及连接客户端

Redis的安装和部署 一、Redis的下载地址 Redis官方并没有提供Redis的windows安装包,但在github上, 有相关的下载地址,如下: ...

40250
来自专栏编程坑太多

一个简单的Django项目

15440
来自专栏Java技术分享

查看zookeeper注册中心是否有注册服务

查看zookeeper注册中心是否有注册服务可以在服务器上看,也可以在dubboadmin看哦~

7.2K110
来自专栏玩转JavaEE

Linux上安装MongoDB

MongoDB在Windows上的安装过程整体上来说并不难,网上的资料也比较多,这里我就不介绍了,我主要说下如何在Linux环境下安装MongoDB。 ----...

75550

扫码关注云+社区

领取腾讯云代金券