Liunx压缩命令 - zip

zip命令 – 压缩文件

zip命令的功能是用于压缩文件,解压命令为unzip。通过zip命令可以将文件打包成.zip格式的压缩包,里面会包含文件的名称、路径、创建时间、上次修改时间等等信息,与tar命令相似。

语法格式:zip 参数 目标文件.zip 源文件或目录名

常用参数:

参数功能操作实例
-A自动解压缩文件zip -A archive.zip
-b设置暂存文件的目录zip -b /tmp archive.zip file.txt
-c添加注释信息到压缩文件zip -c archive.zip file.txt -z "This is a comment"
-d更新压缩包内文件zip -d archive.zip file.txt
-F尝试修复损坏的压缩文件zip -F archive.zip --out fixed_archive.zip
-h显示帮助信息zip -h
-i仅压缩符合条件的文件zip -r archive.zip . -i "*.txt"
-k使用MS-DOS兼容格式zip -k archive.zip file.txt
-l将“LF”替换成“LF+CR”字符zip -rl archive.zip .
-L显示版本信息zip -L
-m压缩后删除源文件zip -rm archive.zip file.txt
-n不压缩具有特定字符串的文件zip -rn archive.zip . -x "*test*"
-q静默执行模式zip -rq archive.zip .
-r递归处理所有子文件zip -r archive.zip .
-S包含系统和隐藏文件zip -r archive.zip . -S
-t设置压缩时间为指定日期zip -t "2023-05-06 12:00" archive.zip file.txt
-T检查压缩文件是否正确无误zip -T archive.zip
-v显示执行过程详细信息zip -rv archive.zip .
-V保留VMS操作系统的文件属性zip -V archive.zip file.txt
-w在文件名称中加入版本编号zip -w archive_v1.zip file.txt
-X不保留过多的文件属性信息zip -X archive.zip file.txt
-y直接保存符号链接,而不是对应文件zip -y archive.zip symlink_folder

操作示例

zip格式压缩

在这里插入图片描述

zip a.zip a 命令的意思是将当前目录下名称为 a 的文件压缩到名为 a.zip 的压缩包中。

这个命令使用了 Linux 中的 zip 命令。zip 命令可以用于在 Linux 系统中创建、修改和提取 ZIP 文件。zip 命令后紧跟 -r 参数表示以递归方式压缩子目录下所有文件,如果只压缩当前目录下的文件,则不需要使用 -r 参数。然后,命令中的 a.zip 表示生成的压缩文件名为 a.zip,最后的 a 表示要压缩的文件名。

在执行zip a.zip a这段命令时提示:

-bash: zip: command not found

这个错误提示表示在当前系统中找不到 zip 命令。可能是因为系统没有安装 zip 命令或者 zip 命令没有被正确的配置。

在 Linux 中,如果想要使用 zip 命令进行文件压缩,需要先安装 zip 软件包。可以通过命令 yum install -y zip 来安装 zip 命令。如果是其他 Linux 发行版,则可以通过对应的软件包管理器进行安装。

如果已经安装了 zip 软件包但仍然出现 -bash: zip: command not found 的错误提示,可以尝试重新配置环境变量,将 zip 命令所在的路径添加到系统的 PATH 环境变量中,使得系统能够正确的找到 zip 命令。

在这里插入图片描述

第一步,列出当前目录下的文件和文件夹

ls

第二步,将当前目录下名为 a 的文件压缩成名为 a.zip 的压缩包

zip a.zip a

第三步,再次列出当前目录下的文件和文件夹

ls

PS: zip格式压缩源文件不会消失,

第四步,在当前路径下创建名为 aa 的目录

mkdir aa

第五步,再次查看当前目录,以确认 aa 目录创建成功

ls

第六步,将 aa 目录压缩成名为 aa.zip 的压缩包

zip aa.zip aa

第七步,再次列出当前目录下的文件和文件夹

ls

第八步,删除名为 aa.zip 的压缩包,-rf 表示强制删除,不进行提示

rm -rf aa.zip

第九步,再次查看当前目录,以确认 aa.zip 压缩包被删除

ls

第十步,进入 aa 文件夹

cd aa

第十一步,在 aa 目录中创建三个空文件 a.txt, b.txt, c.txt

touch a.txt b.txt c.txt

第十二步,返回上一级目录

cd

第十三步,将 aa 目录压缩成名为 aa.zip 的压缩包

zip aa.zip aa

ps:执行命令 zip aa.zip aa 会将当前路径下名为 aa 的目录及其所有子文件夹压缩成一个名为 aa.zip 的压缩包。并不会把里面的txt文件一起进行压缩;

如果要将 aa 目录下的文件一起压缩进 aa.zip 中,应该先进入 aa 目录,然后执行命令 zip ../aa.zip *。这样可以将 aa 目录下所有的文件和文件夹压缩进 ../aa.zip 这个压缩包中。

在这里插入图片描述

这是另一种方法

  1. 这三条命令的作用依次为:删除当前目录下名为 aa.zip 的文件;显示当前目录下的文件和子目录列表;将当前目录下的 aa 目录及其所有子目录和文件压缩成一个名为 aa.zip 的文件。
  2. 第一步中的 rm -rf aa.zip 命令会强制删除当前目录下名为 aa.zip 的文件,如果该文件不存在,则不会有任何影响。
  3. 第二步中的 ls 命令会显示当前目录下的所有文件和子目录的名称列表,并在每个名称前面添加文件类型和权限等信息。
  4. 第三步中的 zip -r aa.zip aa 命令会将当前目录下名为 aa 的目录及其所有子目录和文件压缩成一个名为 aa.zip 的文件。其中,-r 选项表示将目录和子目录一并压缩,而不仅仅是压缩目录本身。

zip格式解压

在这里插入图片描述

第一步 ls

显示当前目录下的所有文件和子目录的名称列表

第二步 rm -f a

删除当前目录下名为 a 的文件,因为我要解压a.zip,a.zip解压出来

就是a文件,但是原本已经存在了文件,所以要先前的删除避免冲突

第三步 unzip a.zip

解压当前目录下名为 a.zip 的文件

但是因为没有安装unzip 压缩解压工具,所以报错

PS:虽然之前安装zip这个工具但是对于Liunx来讲

压缩和解压是两个软件

第四步 yum install unzip

使用 yum 包管理器安装 unzip 压缩解压工具。

在这里插入图片描述

经过安装unzip这个解压工具,就能顺利解压了;
Liunx来讲
压缩和解压是两个软件
第四步 yum install unzip
使用 yum 包管理器安装 unzip 压缩解压工具。
经过安装unzip这个解压工具,就能顺利解压了;
PS: zip格式不管是压缩还是解压缩对于操作的那个文件都没有任何影响,源文件是不会消失的