Linux Zip 命令示例9 2024年10月 | 阅读 9 分钟 Zip 是 Unix 的文件打包和压缩工具。所有文件都存储在一个文件中,即 .zip {.zip-filename},并带有 .zip 扩展名。 - Zip 用于压缩文件以减小文件大小。它与 Windows、Unix、Linux 等各种操作系统中的文件包实用程序 .zip 的用法类似。
- 如果两个服务器之间的带宽受限,并且希望更快地移动文件,Zip 可以轻松地移动文件。
- Zip 程序允许将多个压缩文件打包成一个独立的 Zip 存档,其中包含文件的详细信息,包括名称、保护、上次修改时间、日期、路径以及用于验证文件完整性的检查详细信息。整个目录结构可以通过单个命令打包到 Zip 存档中。
- 该程序有助于打包一组文件进行分发、节省磁盘空间以及通过临时压缩未使用的目录和文件来存档文件。
- 对于各种文本文件,3:1 和 2:1 的压缩比是正常的。Zip 还可以存储多个文件而无需任何压缩,并且它具有单一压缩方法(解压缩)。Zip 会自动为所有要压缩的文件选择两者中较好的一个。
Zip 概述Zip 是一种用于 Windows、OS/2、MS-DOS、VMS、Unix、Acorn、Amiga、Macintosh、Atari、Minix 和 9x/NT/XP 组合的 Unix 压缩和 tar 命令的文件打包和压缩实用程序,它与 PKZIP 兼容。配套程序可以解压缩 Zip 存档。unzip 和 zip 程序可以与 PKZIP 生成的存档一起操作,而 PKUNZIP 和 PKZIP 可以与 zip 生成的存档一起操作。 Zip 3.0 版本与 PKZIP 2.04 版本兼容,并且还支持 PKZIP 4.5 Zip64 扩展,该扩展允许文件和存档超过旧的 2 GB 限制。此外,如果 zip 在添加 bzip2 库时编译,zip 也提供对 bzip2 压缩的支持。 注意:PKUNZIP 1.10 无法提取由 zip 3.0 或 PKZIP 2.04 生成的文件。我们必须使用 unzip 5.0p1 或 PKUNZIP 2.04g 来提取它们。- Zip 在大于 4 GB 的文件包含在存档中时自动使用 Zip64 扩展;如果包含带有 Zip64 条目的存档,存档大小将超过 4 GB,或者存档中的总条目将超过大约 64K。
- 此外,Zip64 也用于通过标准输入流式传输的存档;因此,存档大小无法提前得知。
- 但是,可以使用 -fz- 选项强制 zip 创建 PKZIP 2 兼容存档。
- 我们必须使用与 unzip 兼容的 PKZIP 4.5 版本,例如 unzip 6.0 或更高版本,才能提取带有 Zip64 扩展名的文件。
- 此外,使用暂停选项创建的拆分存档或流式存档可能与 PKZIP 不兼容,因为使用了数据描述符,而 PKZIP 在撰写本文时不支持数据描述符。
Zip 的使用zip 程序有助于打包一组文件,用于存档文件、分发和通过临时压缩未使用的目录和文件来节省磁盘空间。zip 程序将一个或多个压缩文件插入到一个 zip 存档中,其中包含文件信息(名称、日期、路径、上次修改时间、用于授权文件完整性的检查信息和保护)。 整个目录结构可以通过一个命令打包到 zip 存档中。对于文本文件,2:1 和 3:1 的压缩比是基本的。Zip 包含单一压缩方法,并且可以完全不压缩地存储文件。Zip 会自动为所有要压缩的文件选择两者中较好的一个。 - 命令格式: 当 archive 是现有或新的 zip 存档,而 inpath 是文件路径或目录,可选地包含通配符。当提供可用 zip 存档的名称时,zip 将替换 zip 存档中相同的名称条目或为新名称添加条目。
- -@ 文件列表: 如果文件列表定义为 -@,Zip 从标准输入而不是命令行获取输入文件列表。此选项可以在 Unix 中与 find 命令结合使用以获得强大效果。
- 流式输入/输出: Zip 还会接受一个破折号(“-”)作为 zip 文件的名称,它将指定 zip 文件用于标准输出,允许结果通过管道传输到另一个程序。Zip 还会接受一个破折号(“-”)作为文件名,它将通过标准输入读取 zip 文件,允许 zip 通过另一个程序获取输入。
- Zip 文件: 如果修改已经可用的 zip 存档,Zip 将使用新内容编写一个临时文件,并且仅在没有错误的情况下完成新版本的创建过程后替换旧文件。
如果 zip 存档名称不包含扩展名,则会添加 .zip 扩展名。如果名称已包含除 .zip 之外的扩展名,则现有扩展名将保持不变。 - 读取和扫描文件: Zip 在启动时扫描文件以进行处理。如果此扫描过程耗时超过 5 秒,Zip 将显示一条消息,即 “扫描文件”,并开始每 2 秒或每处理几个条目显示进度点,以较长者为准。
- 命令模式: 现在,zip 支持两种不同的命令模式,内部模式和外部模式。内部模式(复制和删除)专门对现有存档中的条目进行操作,而外部模式(更新、添加和刷新)用于通过文件系统读取文件。
- 拆分存档: Zip 的 3.0 及更高版本可以创建拆分存档。它是一个分成多个文件的标准 zip 存档。拆分存档的一个用途是将更大的存档存储在两个或更多可移动媒体上。通常,对于任何使用 20 个拆分文件的拆分存档,文件命名为 ARCHIVE.z01、ARCHIVE.z02、.....、ARCHIVE.z19、ARCHIVE.zip。
此外,跨度存档是实际的多磁盘存档,通常需要软盘并利用卷标来存储磁盘号。另一方面,zip 提供对其拆分存档的支持,尽管它不支持跨度存档;因此,有一个过程可将正确大小的拆分存档转换为跨度存档。 - Unicode: 实际上,zip 在存档中存储路径时使用本地字符集;但是,zip 标准要求在存档中存储带有特定字符集的路径。如果在一个具有单一字符集的系统上创建和更新存档,然后在其上提取,这会产生问题。在另一个具有不同字符集的系统上,也会产生问题。
语法创建任何 zip 文件的语法
 从 zip 文件中提取文件Unzip 可以从 Unix 上常见的 ZIP 存档中提取、测试或列出文件。默认情况下,是从特定 ZIP 存档中提取每个文件到当前目录。 语法
 Zip 命令中的选项 1. -d 选项: 此选项从 zip 存档中删除任何文件。在创建 zip 文件后,我们可以使用 -d 选项从存档中删除任何文件。 语法
 2. -u 选项: 此选项可以更新 zip 存档中的文件。它可用于更新描述的文件列表或向现有 zip 文件添加新文件。 只有当现有条目在 zip 存档中比 zip 存档中已存在的版本更新时,我们才能更新它。 语法
 3. -m 选项: 压缩后,此选项删除实际文件。将特定文件传输到 zip 存档中,因为它在创建指定的 zip 存档后删除目标文件/目录。 如果目录在文件删除后变空,则目录也会被删除。在 zip 没有任何错误地创建存档之前,不会进行任何删除。 它有助于节省磁盘空间;但是,删除每个输入文件可能不安全。 语法
 4. -r 选项: 要递归压缩目录,请使用带有 -r 选项的 zip 命令,它将递归压缩目录中指定的文件。此选项支持我们压缩指定目录中存在的每个文件。 语法
 5. -x 选项: 此选项可以在创建 zip 时排除指定的文件。例如,我们正在压缩目录中的每个文件,并希望排除一些不需要的文件。我们可以使用此选项排除不需要的文件。 语法
 6. -v 选项: 打印诊断或详细模式版本信息。它在请求详细诊断和压缩信息时启用进度指示器显示,通常在应用于原始操作时显示 zip 文件结构的奇怪之处。 如果 -v 是唯一的命令行参数,并且 stdout 或 stdin 都未重定向到任何文件,则将打印诊断屏幕。除了带有发布日期、版本和程序名称的帮助屏幕标题外,还给出了一些指向分发站点和 Info-ZIP 主页的指针。 然后它显示有关目标环境的信息(编译器版本和类型、编译日期、操作系统版本以及用于创建 zip 可执行文件的启用选项方面)。 语法
 Zip 的其他一些选项- --ascii, -a: 它以 ASCII 格式翻译文件。
- --adjust-sfx, -A: 它调整可执行的自解压存档。通过将 SFX 存根添加到现有存档来创建可执行的自解压存档。
- --archive-clear, -AC: 它只包含包含存档位集的文件。如果使用 -AS 选项,则不存储目录,因此通常存储条目路径(如目录),并且几乎所有 unzip 都可以默认重新创建目录。
- --binary, -B: 它强制文件被解释为二进制文件。
- -Bn: 它设置 Enscribe/Edit 格式选项。
- --temp-path, -b: 它将描述的路径用于 zip 存档。
- --entry-comments, -c: 它为所有文件添加单行注释。首先执行文件操作,然后要求用户为所有文件输入单行注释。
- --preserve-case, -C: 它在 VMS 上保留大小写。
- --preserve-case-2, -C2: 它在 VMS 上保留 ODS2 大小写。
- --delete, -d: 它从指定的 zip 存档中删除条目。
- --display-bytes, -db: 它显示代表已压缩字节和剩余字节的正在运行的字节数。
- --display-counts, -dc: 它显示已压缩条目和剩余条目的正在运行计数。
- --display-dots, -dd: 它在所有条目被压缩时显示点。
- --datafork, -df: 它只包含压缩文件的数据分叉到存档中。这有利于将文件导出到任何外部操作系统。资源分叉将完全避免。
- --dot-size, -ds: 它设置所有显示点已处理的输入文件数量。
- --display-usize, -du: 它显示所有条目的未压缩大小。
- --display-volume, -dv: 如果正在解释任何现有存档,它显示所有条目正在解释的卷号。
- --no-dir-entries, -D: 在 zip 存档中,它不为目录创建条目。默认情况下,创建目录条目,以便它们的属性可以存储在 zip 存档中。
- --difference-archive, -DF: 它创建一个存档,其中包含自实际存档创建以来所有新增和修改的文件。
- --encrypt, -e: 它使用终端上提供的密码加密 zip 存档内容。密码会重复要求,以防止用户输入错误。
- --longnames, -E: 它使用扩展属性,即 .LONGNAME,作为文件名。
- --freshen, -f: 在 zip 存档中,只有当现有条目比 zip 存档中可用的版本更新时,它才会替换现有条目。
- --fixfix, -FF, --fix, -F: 它修复 zip 存档。如果存档的某些段不可用但需要相当完美的中央目录,则可以使用此标志。
- --fifo, -FI: 它告诉 zip 解释它检测到的 FIFO 的内容。
- --filesync, -FS: 它使用操作系统中的文件同步存档内容。新文件被包含,修改的文件被改进,但操作系统上不可用的文件不会从存档中删除,通常在存档升级时。
- --grow, -g: 它附加到定义的 zip 存档而不是创建一个新存档。如果此任务失败,Zip 会尝试将存档恢复到其实际状态。
- --help, -?, -h: 它显示 zip 帮助详细信息。
- --more-help, -h2: 它显示扩展帮助,例如更多关于模式匹配、命令行格式和更复杂选项的信息。
- --include, -i: 它只包含定义的文件。
- --no-image, -I: 它不从图像文件扫描。Zip 不会将图像文件识别为目录,但会将其保存为单独的文件。
|