Zip文件是包含一个或多个压缩文件或目录的数据容器,与未压缩的文件相比,压缩文件占用的磁盘空间更少,可以更快地从一台计算机传输到另一台计算机。使用适用于所有操作系统的实用程序,可以在Windows,macOS和Linux中轻松提取Zip文件。
在本教程中,向你展示如何在Linux中使用Zip (压缩)命令压缩文件和目录。
zip命令
zip是一个命令行实用工具,帮助你创建Zip存档。
zip命令采用以下语法格式:zip OPTIONS ARCHIVE_NAME FILES
要在特定目录中创建Zip归档文件,用户需要对该目录有写权限。
Zip文件不支持linux风格的权限信息,提取的文件由运行命令的用户拥有,
要保留文件所有权和权限,请使用tar命令。
在大多数Linux发行版中,默认未安装zip实用程序,但是您可以使用发行版的程序包管理器轻松安装它。
在Ubuntu和Debian上安装Zipsudo apt install zip
在CentOS和Fedora上安装Zipsudo yum install zip
如何压缩文件和目录
要压缩一个或多个文件,请指定要添加到归档中的文件,以空格分隔,如下所示:zip archivename.zip filename1 filename2 filename3adding: filename1 (deflated 63%)
adding: filename2 (stored 0%)
adding: filename3 (deflated 38%)
默认情况下,zip命令打印添加到归档的文件的名称和压缩方法,在本指南的后面解释压缩方法和级别。
指定Zip归档名称时,如果省略.zip扩展名,则会自动添加,除非归档名称包含点,zip archiveName.zip filename将创建一个与zip archiveName filename同名的归档文件,
要取消zip命令的输出,请使用-q选项:zip -q archivename.zip filename1 filename2 filename3
通常,你将创建包含子目录内容的目录的Zip归档文件,-r选项允许你递归地遍历整个目录结构。
要创建目录的Zip归档文件,可以使用:zip -r archivename.zip directory_name
你还可以在同一归档中添加多个文件和目录:zip -r archivename.zip directory_name1 directory_name2 file1 file1
压缩方法和级别
Zip的默认压缩方法是deflate,在大多数Linux发行版中,zip程序还支持bzip压缩方法。
若要指定压缩方法,请使用-Z选项。zip -r -Z bzip2 archivename.zip directory_name...
adding: sub_dir/ (stored 0%)
adding: sub_dir/file1 (bzipped 52%)
adding: sub_dir/file2 (bzipped 79%)
zip命令允许您使用带0到9的短划线作为前缀的数字来指定压缩级别。默认压缩级别是-6。使用-0时,所有文件都被存储而不进行压缩,-9将强制zip命令对所有文件使用最佳压缩。
例如要使用压缩级别-9,可以键入如下内容:zip -9 -r archivename.zip directory_name
压缩级别越高,zip进程的CPU使用率就越高,并且需要花费更多的时间来完成。
创建受密码保护的ZIP文件
如果你有需要存储在归档文件中的敏感信息,可以使用-e选项对它进行加密:zip -e archivename.zip directory_name
系统将提示你输入并验证归档密码:Enter password:
Verify password:
创建分割Zip文件
假设您要将Zip存档存储在文件上传服务上,该服务的文件大小上传限制为1GB,而Zip存档为5GB。
可以使用-s选项和指定的大小创建新的分割Zip文件,可以是k (千字节),m (兆字节),g (千兆字节)或t (terabyte)。zip -s 1g -r archivename.zip directory_name
达到指定的大小限制后,上面的命令将继续创建新档案。archivename.zip
archivename.z01
archivename.z02
archivename.z03
archivename.z04
ZIP例子
创建一个archiveName.Zip的Zip归档文件,其中包含当前目录中的所有文件。zip archivename *
上面一样,包括隐藏文件(以点开头的文件):zip archivename .* *
创建一个archivename.zip的Zip归档文件,其中包含当前目录中的所有MP3文件,而不压缩文件。zip -0 archivename *.mp3
结束语
在Linux中,可以使用zip命令创建Zip归档文件。
要在Linux系统上提取ZIP归档文件,可以使用unzip命令。