Linux下zip压缩文件时怎样排除指定的文件?

Linux下zip压缩文件时怎样排除指定的文件?,第1张

在用tar命令打包的时候,增加参数 --exclude 就能达到目的。

例如:

以tomcat 为例,打包的时候要排除 tomcat/logs 目录,命令如下:

tar -zcvf tomcat.tar.gz --exclude=tomcat/logs tomcat

如果要排除多个目录,增加 --exclude 即可,如下命令排除logs和libs两个目录及文件xiaoshan.txt:

tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs --exclude=tomcat/xiaoshan.txt tomcat

这里要说一下注意事项:

linux在使用tab键的时候会对目录名称自动补全,这很方便,也比较常用。

如输入 tomcat/lo 的时候按tab键,命令行会自动生成 tomcat/logs/ ,对于目录,最后会多一个 “/”。这里大家要注意的时候,在使用tar 的--exclude 命令排除打包的时候,不能加“/”,否则还是会把logs目录以及其下的文件打包进去。

错误写法:

tar -zcvf tomcat.tar.gz --exclude=tomcat/logs/ --exclude=tomcat/libs/ tomcat

正确写法:

tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs tomcat

\相当于脱去马甲。 只作用于特殊的符号

\加特殊字符:表示脱掉特殊字符原有的属性,让你回归到普通的字符样式

\( \):表示去除了括号的特殊性质,变回最普通的括号模式。

例子:

cat 1.txt

1 ' 1.txt 过滤的是 ‘1

[root@db01-172 ~]# grep '1$' 1.txt 过滤的是以1结尾的行

11111111

22222221

———————————————————————————————

1.什么是文件压缩

将多个文件和目录组织成一个特殊的文件(特殊的文件==》压缩文件)

2.为什么要对文件压缩

不压缩:就相当于一个大汉去搬家,每一次只拿一个东西。就算自己能一次拿完,也没办法。他不是搬家累死,而是被走死的。

压缩之后:大汉直接一次就拿走了。

对于文件也是,压缩前后大小不同。并且传输的速度也是不同的。

3.Windows和Linux压缩包如何互通?

.zip

.tar.gz

4.linux下常见的压缩包类型

格式 压缩工具

.zip zip压缩工具

.gz gzip压缩工具,只能压缩文件,会删除原文件(通常配合tar使用)

.bz2 bzip2压缩工具,只能压缩文件,会删除原文件(通常配合tar使用)

.tar.gz 先使用tar命令归档打包,然后使用gzip压缩

.tar.bz2 先使用tar命令归档打包,然后使用bzip压缩

5.gzip (只能压缩一个文件,所以特定用在想让某个文件不生效的场景下)

使用gzip方式进行压缩文件 ( 只能压缩文件,并且文件被压缩后,源文件会丢失,解压之后,压缩文件会丢失

[root@xuliangwei ~]# yum install gzip -y (先安装)

[root@xuliangwei ~]# gzip file #对文件进行压缩

[root@xuliangwei ~]# zcat file.gz#查看gz压缩后的文件

[root@xuliangwei ~]# gzip -d file.gz #解压gzip的压缩包

不生效的意思:就是我先把它打包隐藏起来,系统读不到,命令也无法读取不到。。但文件并没丢失,只是藏起来了,如果想使用了,在解压回来。想看压缩下查看压缩包的内容,用zcat

zip 压缩

unzip 解压

只压缩一个文件的,如果压缩的是目录,请加-r

zipfile.zipfile.txt

命令压缩后的名字 需要压缩的文件

买菜 买菜的篮子 需要买的东西

zip压缩之后,源文件不会丢失,压缩的文件也存在。

zip /opt/file123.zip file.txt

命令 跟路径(表压缩到哪) 需要压缩到文件

默认是家目录

unzip -l /opt/file123.zip(查看被压缩的文件)

unzip -t /opt/file123.zip(查看压缩的完整性)

du -sh (查看压缩之后的文件大小)

压缩多个文件:(其中有目录的,要加递归压缩)

zip-r all.zip ./file.txt /opt/

命令递归压缩名 压缩文件1 压缩目录2

unzip all.zip 直接解压到当前目录

unzip all.zip -d /tmp/加-d,指定拷贝到位置。

总结:zip压缩。可以一次一次往里边添加文件和目录,相同的东西会直接覆盖。源文件不会丢失,压缩包也不会丢失。

unzip解压,可以解压很多次,除非你删除了压缩包。还可以指定解压到任何的目录下。

tar (支持目录和文档的压缩归档)

c #创建新的归档文件

x #对归档文件解包

t #列出归档文件里的文件列表

f #指定包文件名,多参数f写最后

z #使用gzip压缩归档后的文件(.tar.gz)

j #使用bzip2压缩归档后的文件(.tar.bz2)

J #使用xz压缩归档后的文件(tar.xz)

C #指定解压目录位置

X #排除多个文件(写入需要排除的文件名称)

h #打包软链接

--exclude= #在打包的时候写入需要排除文件或目录

常用的组合:

czf压缩 tar.gz 格式

cjf压缩 tar.bz 格式

cJf 压缩 tar.xz 格式 (使用不多)

xf 解压所有格式

tf 查看压缩包的内容

两种打包格式

tar czfoldboy.tar.gz /etc/ /opt/

命令 压缩名 两个目录,可以一起

tar cjf oldgirl.tar.bz2 /boot/ /mnt/

命令 压缩名 两个目录,可以一起

打包/tmp下所有文件

find /tmp/-type f |xargs tar czf tmp.tar.gz

配合使用,将查找到的内容,放到右边进行压缩打包

tar czf tmp2.tar.gz $(find /tmp/ -o /opt/ -type f )

先运算括号里边的,在进行括号外的运算。

打包链接文件

ll /etc/rc.local是一个链接文件

/etc/rc.local ->rc.d/rc.local 所以需要打包到真实的路径

tar czfh local.tar.gz /etc/rc.local需要就h

解压浏览文件

tar xf all.tar.gz

命令解压 压缩名

tar xf all.tar.gz

命令浏览 压缩名

排除文件,并打包压缩

(先将不需要的文件排除掉,在进行全部打包。)

@1.排除单个文件

[root@oldboy ~]#tar czf etc.tar.gz --exclude=etc/services/etc/

压缩名 (排除掉这个脚本文件) 要压缩的

--exclude=etc/services⚠️:etc前不加/,因为会被系统排除掉。

@2.排除几个文件 (将文件依次排放)

[root@oldboy ~] tar czf etc.tar.gz--exclude=etc/services--exclude=etc/rc.local /etc/

将排除掉的两个一一写出就好

@3.排除多个文件 (需要将排除的写到一个文件里,写到时候前面不能加/,因为系统会默认删除)

[root@oldboy ~] vim paichu.list

[root@oldboy ~] catpaichu.list

etc/services

etc/rc.local

etc/rc.d/rc.local

[root@oldboy ~] tar czfX etc.tar.gz paichu.list /etc/

(加包加X)(需过滤的内容) 需打包的内容

指定解压的位置,需要加-C

[root@oldboy ~] tar xf /etc/local.tar.gz -C/tmp

压缩包的位置 指定 解压到的位置

在打包时,如果不想被提示,就进去到根下边去,系统觉得没有危险了,就不会提示你了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11776005.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存