个人主页:平行线也会相交
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创
收录于专栏【Linux专栏】🎈
本专栏旨在分享学习Linux的一点学习心得,欢迎大家在评论区讨论💌
演示环境:centos7
在这里插入图片描述

zip指令用于在Linux系统上创建和管理ZIP压缩文件
命令格式zip [选项] <压缩文件名> <文件/目录列表>
常用选项如下,请看:

选项作用
-r递归地将一个目录及其所有子目录和文件压缩到ZIP文件中
-q在压缩文件时启用静默模式,即不显示压缩过程的详细信息
-d从现有的ZIP文件中删除指定的文件或目录
-u用于更新现有的ZIP文件,将新的文件或修改后的文件添加到ZIP存档中
-f用于刷新(更新)现有ZIP文件中的指定文件。
-m用于移动(归档)文件到一个ZIP压缩文件中,并在移动后将源文件删除。
-e用于对ZIP压缩文件进行加密。
-z为压缩文件添加注释

下面将对以上选项进行详细的介绍。

-r

-r选项:用于递归地将一个目录及其所有子目录和文件压缩到ZIP文件中。
命令格式:zip -r <压缩文件名> <目录/文件>
在这里插入图片描述

输入命令:zip -r mytxt .zip t1.txt t2.txt。 结果如下:
在这里插入图片描述
这里要注意:deflated 27% 表示压缩率为 27%,即压缩后的文件大小是原文件的 73%。

也可以将文件和目录一起压缩,
输入命令:zip -r mytxt1.zip t1.txt t2.txt a/ 结果如下:
在这里插入图片描述

-q

-q选项:压缩文件时不显示压缩过程的详细信息。
输入指令:zip -q mytxt.zip t1.txt t2.txt
结果如下:
在这里插入图片描述

-d

-d选项:(d是delete的缩写)从现有的ZIP文件中删除指定的文件或目录,可以从ZIP存档中删除不需要的文件或目录。

现在压缩文件mytxt.zip中存档着,文件t1.txt和t2.txt,现在要从压缩文件mytxt.zip中删除t1.txt

输入命令rm -r mytxt.zip t1.txt
结果如下:
在这里插入图片描述

-u

-u选项:用于更新现有的ZIP文件,将新的文件或修改后的文件添加到ZIP存档中。

在这里插入图片描述
可以看到输入命令之前mytxt.zip中存档着t1.txt、t2.txt、t3.txt三个文件。

输入命令:zip -u mytxt.zip t3.txt
解释:如果mytxt.zip压缩文件中没有t3.txt,则mytxt.zip中会增加新文件t3.txt;如果有t3.txt,则会替换mytxt.zip压缩文件中的旧t3.txt为新的t3.txt。(该例属于第二种情况)

结果如下:
在这里插入图片描述

-f

-f选项:用于刷新(更新)现有ZIP文件中的指定文件。
命令格式zip -f <压缩文件名> <要刷新(更新)的文件>

输入命令zip -f mytxt.zip t3.txt
解释:更新mytxt.zip压缩文件中的t3.txt文件,如果mytxt.zip压缩文件存在该文件则会更新此文件;如果不存在则不会执行任何操作(即命令为无效命令)。
结果如下在这里插入图片描述

需要注意的是:使用-f选项仅更新ZIP文件中指定文件,而不会添加新文件或删除文件如果在ZIP文件中不存在要刷新(更新)的文件,则该选项不会执行任何操作。

这里我们要对zip -fzip -u之间的区别,二者都是用于更新现有的ZIP文件,但它们的行为略有不同。不同点如下:

zip -f:只更新已存在于ZIP文件中的文件,不会添加新文件不会添加、不会添加、不会添加(重要的事情说三遍)。
zip -u:可以添加新文件并更新已存在的文件。

-m

-m选项:用于移动(归档)文件到一个ZIP压缩文件中,并在移动后将源文件删除。

输入命令:zip -m mytxt t1.txt t2.txt t3 .txt 结果如下:
在这里插入图片描述

-e(加密)

-e选项:用于对ZIP文件进行加密。
输入命令zip -e mytest.zip t1.c t2.c
解释:压缩t1.c和t2.c到压缩文件mytest.zip中,并将其保存为加密的ZIP文件。
结果如下
在这里插入图片描述

-z(添加注释)

-z选项:为压缩文件添加注释。
命令格式zip -z <添加注释的压缩文件>

输入命令zip -z mytxt.zip 结果如下: 在这里插入图片描述

输入命令unzip -l mytxt.zip可以查看刚刚添加的注释,请看:
在这里插入图片描述

好了,以上就是zip指令中常用选项的介绍。
就到这里啦,再见啦友友们!!!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐