Zip是使用最广泛的归档文件格式,它支持无损数据压缩。

Zip文件是包含一个或多个文件或目录的数据压缩容器。已压缩文件占用较少的磁盘空间可以比未压缩文件更快地从一台机器传输到另一台机器。它适用于所有操作系统,可以在Windows,macOS和Linux中轻松提取Zip文件。

在本教程中,我们将向您展示如何使用zip命令在Linux中压缩(压缩)文件和目录。

zip 命令

zip 是一个命令行实用程序,可帮助您创建Zip存档。

zip命令采用以下语法形式:

zip OPTIONS ARCHIVE_NAME FILES

要在特定目录中创建Zip存档,用户需要对该目录具有写入权限。

Zip文件不支持Linux风格的所有权信息。提取的文件由运行该命令的用户拥有。

要保留文件所有权和权限,请使用tar命令

zip 在大多数Linux发行版中默认不安装该命令,但您可以使用发行版的软件包管理器轻松安装它。

在Ubuntu和Debian上安装Zip

sudo apt install zip

在CentOS和Fedora上安装Zip

sudo yum install zip

如何使用zip压缩文件和目录

要压缩一个或多个文件,请指定要添加到按空格分隔的存档的文件,如下所示:

zip archivename.zip filename1 filename2 filename3
adding: filename1 (deflated 63%)
adding: filename2 (stored 0%)
adding: filename3 (deflated 38%)

默认情况下,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。如果zip程序确定无法压缩文件,则只需将文件存储在存档中,而不使用store方法对其进行压缩。在大多数Linux发行版中,zip程序还支持bzip2压缩方法。

要指定压缩方法,请使用-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(万兆字节)。

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包含当前目录中所有MP3文件的Zip存档,而不压缩文件。

zip -0 archivename *.mp3

结论

在Linux中,您可以使用zip命令创建Zip存档。

要在Linux系统上提取ZIP存档,可以使用unzip命令

如果您想了解有关Zip的更多信息,请访问Zip Man页面。

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持