Zip 是支持无损数据压缩的最广泛使用的存档文件格式。
Zip 文件是包含一个或多个压缩文件或目录的数据容器。与未压缩文件一样,压缩(压缩)文件占用更少的磁盘空间,可以更快地从一台计算机传输到另一台计算机。使用可用于所有操作系统的实用程序,可以在 Windows、macOS 和 Linux 中轻松提取 Zip 文件。
在本教程中,我们将向您展示如何使用命令在 Linux 中压缩(压缩)文件和目录。zip

zip命令

zip是一个命令行实用程序,可帮助您创建 Zip 存档。
zip 命令采用以下语法形式:

  1. zip OPTIONS ARCHIVE_NAME FILES

复制
若要在特定目录中创建 Zip 存档,用户需要具有该目录的写入权限。
Zip 文件不支持 Linux 样式的所有权信息。提取的文件由运行该命令的用户拥有。
若要保留文件所有权和权限,请使用tar命令。
默认情况下,大多数 Linux 发行版中未安装该实用程序,但您可以使用发行集的包管理器轻松安装它。zip

在 Ubuntu 和 Debian 上安装 Zip

  1. sudo apt install zip

在 CentOS 和 Fedora 上安装 Zip

  1. sudo yum install zip

如何压缩文件和目录

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

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

默认情况下,该命令打印添加到存档和压缩方法的文件的名称。我们将在本指南的稍后部分解释压缩方法和级别。zip
如果省略扩展名,指定 Zip 存档名称时,除非存档名称包含点,否则将自动添加该扩展名。 将创建与 同名的存档。.zip``zip archivename.zip filename``zip archivename filename
要禁止显示命令的输出,请使用 以下选项:zip``-q

  1. zip -q archivename.zip filename1 filename2 filename3

通常,您将创建目录的 Zip 存档,包括子目录的内容。该选项允许您递归遍整个目录结构。-r
若要创建要使用的目录的 Zip 存档::

  1. zip -r archivename.zip directory_name

您还可以在同一存档中添加多个文件和目录:

  1. zip -r archivename.zip directory_name1 directory_name2 file1 file1

压缩方法和级别

Zip 的默认压缩方法是放气。如果 zip 实用程序确定文件无法压缩,则只需将文件存储在存档中,而无需使用存储方法对其进行压缩。在大多数 Linux 发行版中,zip 实用程序还支持bzip2压缩方法。
若要指定压缩方法,请使用 选项。-Z

  1. zip -r -Z bzip2 archivename.zip directory_name
  1. ...
  2. adding: sub_dir/ (stored 0%)
  3. adding: sub_dir/file1 (bzipped 52%)
  4. adding: sub_dir/file2 (bzipped 79%)

该命令允许您使用编号前缀的从 0 到 9 的编号来指定压缩级别。默认压缩级别为 。使用 时,所有文件将存储在没有压缩。 将强制命令对所有文件使用最佳压缩。zip``-6``-0``-9``zip
例如,要使用压缩级别 ,请键入类似下面的类型:-9

  1. zip -9 -r archivename.zip directory_name

压缩级别越高,zip 过程越密集,完成时间也越高。

创建受密码保护的 ZIP 文件

如果您有需要存储在存档中的敏感信息,您可以使用以下选项对其进行加密:-e

  1. zip -e archivename.zip directory_name

系统将提示您输入并验证存档密码:

  1. Enter password:
  2. Verify password:

创建拆分 Zip 文件

假设您要将 Zip 存档存储在文件大小上传限制为 1GB 且 Zip 存档为 5GB 的文件托管服务上。
您可以使用以下选项(后跟指定大小)创建新的拆分 Zip 文件。乘数可以是 k (千字节)、m (兆字节)、g (千兆字节) 或 T(TB)。-s

  1. zip -s 1g -r archivename.zip directory_name

上述命令将在达到指定大小限制后继续在一个集中创建新存档。

  1. archivename.zip
  2. archivename.z01
  3. archivename.z02
  4. archivename.z03
  5. archivename.z04

邮编示例

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

  1. zip archivename *

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

  1. zip archivename .* *

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

  1. zip -0 archivename *.mp3

结论

在 Linux 中,您可以使用 命令创建 Zip 存档。zip
若要在 Linux 系统上提取 ZIP 存档,可以使用解压缩命令。
如果您想了解有关 Zip 的信息,请访问 Zip Man页面。