如何在Linux中压缩文件和目录

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

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

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

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 archivename.zip filename1 filename2 filename3
adding: 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的默认压缩方法是 放气。 如果zip实用程序确定无法压缩文件,则只需将文件存储在归档文件中,而无需使用 商店 方法。 在大多数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。

您可以使用来创建新的拆分Zip文件 -s 选项,后跟指定的大小。 乘数可以是k(千字节),m(兆字节),g(千兆字节)或t(兆字节)。

zip -s 1g -r archivename.zip directory_name

达到指定的大小限制后,上面的命令将继续在集合中创建新档案。

archivename.zip
archivename.z01
archivename.z02
archivename.z03
archivename.z04

邮编示例

创建一个名为archivename.zip的Zip存档,其中包含当前目录中的所有文件。

zip archivename *

与上述相同,包括隐藏文件(以点开头的文件):

zip archivename .* *

创建一个名为的Zip存档 archivename.zip 包含当前目录中的所有MP3文件,而不压缩这些文件。

zip -0 archivename *.mp3

结论#

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

要在Linux系统上提取ZIP归档文件,可以使用unzip命令。

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

邮编终端

Sidebar