如何在 Ubuntu 中 ZIP 和 UNZIP 文件夹2025年3月17日 | 阅读 12 分钟 Zip 是一种用于存储压缩数据的存档文件格式。我们可以使用这种压缩技术存储任意数量的文件。该格式最初由 Phil Katz 于 1989 年创建。 unzip 简介unzip 可以列出、检查和提取 ZIP 存档中的文件。它通常存在于 MS-DOS 系统中。它的默认行为是将给定 ZIP 存档中的每个文件提取到最近的目录中。zip 是一个用于创建 ZIP 存档的配套程序;这些程序与 PKWARE 的 PKUNZIP 和 PKZIP for MS-DOS 创建的存档兼容。但是,程序的默认行为和选项在几种情况下有所不同。 Unzip 的参数- file[.zip]: 这是 ZIP 存档的路径。如果文件规范是通配符,则所有匹配的文件将按操作系统决定的顺序处理。文件名只能是通配符;路径不能。通配符表达式与通常使用的 Unix shell 支持的相同,并且可能包含
- *: 匹配 0 或更多字符的顺序。
- ?: 精确匹配 1 个字符。
- [...]: 匹配方括号内的单个字符;范围由起始字符、结束字符和连字符确定。
- [file(s)]: 这是要处理的存档成员的可选列表,用空格分隔。可以使用通配符或正则表达式来匹配两个或多个成员。
- [-x xfile(s)]: 这是要从处理中排除的存档成员的可选列表。此选项可用于排除位于子目录中的文件,因为字符通常匹配目录分隔符。
- [-d exdir]: 默认情况下,每个子目录和文件都会在当前目录中重新创建,此选项允许在任意目录中进行提取;此选项不必出现在命令行末尾。
Unzip 的选项注意:unzip 的使用屏幕限制为 23 或 22 行,因此应仅将其视为对常用 unzip 语法的提醒,而不是支持过时硬件的每个可能标志的详尽列表。详尽列表如下 - -Z: 显示 zipinfo 模式。如果命令行上的第一个选项是 -Z,则其余选项被视为 zipinfo 选项。
- -A: 显示 DLL 编程接口的扩展帮助。
- -c: 将文件提取到屏幕/stdout。此选项与 -p 选项相同,除了所有文件名都会在提取时打印出来,允许使用选项 i.e. a,并在适当时自动执行 ASCII-EBCDIC 转换。此外,此选项未在 unzip 的使用屏幕中提及。
- -f: 刷新可用文件,即仅提取磁盘上存在且比磁盘副本更新的文件。unzip 默认会在覆盖前进行询问。但是,可以使用选项 i.e. -o 来抑制这些询问。
注意:为了使 -u 和 -f 在多个操作系统下正常工作,时区环境变量必须设置正确。原因有些间接,但与 Unix 格式时间和 DOS 格式文件时间之间的许多差异以及比较两者的需求有关。标准时区的值是“PST8PDT”。- -l: 列出存档文件。显示指定文件的修改日期和时间、未压缩的文件大小和名称,以及每个指定文件的总计。如果 unzip 是使用 OS2-EAS 指定进行编译的,则选项 i.e. -l 还会列出存储的 OS/2 访问控制列表和 OS/2 扩展属性的大小列。此外,还会显示单个文件注释和 zipfile 注释。
- -p: 此选项用于将文件提取到 stdout(管道)。只有文件中的数据会被传输到 stdout,并且这些文件以二进制格式提取,就像它们被存储一样。
- -t: 测试存档文件。它会在内存中提取所有指定文件,并将其 CRC 与文件的原始存储 CRC 值进行比较。
- -T: 设置存档的时间戳。此选项与 zip 的 -go 选项相关,但它也可以用于通配符 zip 文件,并且速度更快。
- -u: 更新可用文件,并在需要时创建新文件。它的功能与 -f 标志类似,提取比磁盘上同名文件更新的文件。此外,它还会提取磁盘上不存在的文件。
- -v: 列出存档文件或显示诊断版本信息。此选项已被派生,现在既是修饰符也是选项。
- -z: 仅显示存档注释。
Unzip 的修饰符- -a: 转换文本文件。每个文件通常按存储方式提取。此选项会导致被 zip 识别为文本文件的文件被自动提取,例如,转换行尾、文件结束符和字符集。
- -b: 将所有文件视为二进制文件。它是 --a 选项的快捷方式。
- -B: 存储所有被覆盖文件的备份副本。此备份文件将获得目标文件名,并可能附加一个特殊的序列号和波浪号。当使用实际名称和波浪号的其他文件已存在时,会使用此序列号。
- -C: 使用不区分大小写的匹配,从提取选择模式的命令行列表中选择存档条目。unzip 的默认行为是区分大小写地匹配字面文件名和通配符,因为一些文件系统是区分大小写的,并且 unzip 本身以及 ZIP 存档都在平台之间可移植。
- -D: 跳过提取项的时间戳恢复。Unzip 通常会尝试恢复 ZIP 存档中提供的所有提取项的元信息。通过指定此选项,unzip 会被指示明确禁止从 Zip 存档条目创建的目录的时间戳恢复。
- -DD: 强制禁止所有提取条目的时间戳恢复。它为每个提取的条目提供一个时间戳设置为最近时间。
- -E: 在恢复任务期间显示 MacOS 扩展字段内容。
- -F: 在使用存储的文件名时禁止删除 NFS 文件类型扩展。
- -i: 避免文件名存储在 MacOS 的扩展字段中。
- -j: 垃圾路径。存档的目录结构不会被重新创建;每个文件都存放在提取目录中。
- -J: 垃圾文件属性。BeOS 文件属性不会被恢复,只有文件数据会被恢复。
- -K: 保留 Tacky/SGID/SUID 文件属性。没有此选项,这些属性位将出于安全原因而被删除。
- -L: 将任何文件名转换为小写,该文件名来自仅大写文件系统或操作系统。
- -M: 将所有结果通过内部分页器传递,类似于 Unix 的 more 命令。
- -n: 永远不会覆盖现有文件。
- -N: 将文件的注释提取为 Amiga 文件注释。
- -o: 在不询问的情况下覆盖现有文件。这是一个有风险的选项,因此我们需要谨慎使用。
- -P: 使用密码解密加密的 zipfile 条目。
- -q: 静默执行操作。
- -s: 将文件名中的空格转换为下划线。默认情况下,unzip 会将文件名中的空格保持不变,因为每个 PC 都允许在文件名中使用空格。
- -S: 将文本文件转换为记录格式,即 Stream_LF,而不是默认的文本文件,可变长度记录格式。
- -U: 修改或禁用 UTF-8 处理。
- -V: 保留文件的版本号。
- -W: 修改匹配模式例程,以便 '*' 和 '?' 不与 '/' 目录分隔符字符相同。
- -X: 在 VMS 上恢复保护/所有者信息,在 Unix 上恢复组和用户信息,在 OS/2 的可能联网版本上恢复 ACL(访问控制列表),或在 Windows NT 上恢复安全访问控制列表。
- -Y: 将存档文件名末尾的 ".nnn" 视为 VMS 的版本号。
什么是 Zip 文件?Zip 是一种存档文件格式。Zip 文件可以包含一个或多个目录或文件,这些文件或目录可能已被压缩。这种文件格式允许多种压缩算法,DEFLATE 是其中最基本的一种。最初,zip 格式于 1989 年创建,最初在 PKWARE, Inc. 的 PKZIP 工具中实现,以替代旧的 ARC 格式。 之后,Zip 格式被比 PKZIP 更多的软件工具立即支持。Microsoft 从 1998 年开始通过“Plus! 98”在其 Windows 版本中包含了内置的 Zip 支持。 ZIP 的历史.ZIP 格式由 PKWARE 的 Phil Katz 和 Infinity Design Concept 的 Gary Conway 开发。该格式是在 SEA(Systems Enhancement Associates)起诉 PKWARE,声称后者名为 **PKARC** 的存档产品是 SEA 的 ARC 存档系统的副本之后创建的。 Infinity Design Concepts 和 PKWARE 于 1989 年 2 月 14 日发布联合新闻稿,将 .ZIP 格式公之于众。 ZIP 版本历史ZIP 的文件格式规范有其版本号,这并不一定与 PKZIP 工具的版本号相关,特别是对于 PKZIP 的六个或更多版本。PKWARE 包含了之前的方面,允许 PKZIP 产品提取标准方面的存档,但直到下一个主要版本才提供创建此类存档的 PKZIP 产品。其他组织和公司则按照自己的节奏支持 PKWARE 的规范。 正式来说,.zip 文件格式的规范称为 **“APPNOTE - .ZIP File Format Specification”**。 自 20 世纪 90 年代末以来,它已在 **PKWARE.com** 网站上发布。各种规范版本未发布。PKWARE 在创建几年后发布了 BZIP2 压缩、强大加密规范以及其他许多方面的规范。PKWARE 网站上的在线规范 URL 已多次更改。 PKWARE 规范版本中重大进展的摘要 - 0: 1993 年,文件条目可以使用 DEFLATE 压缩并应用经典的 PKWARE 加密,即 ZipCrypto。
- 1: 1996 年开发的 Deflate64 压缩。
- 5: 2001 年开发的 64 位文档 zip 格式。
- 6: 2001 年开发的 BZIP2 压缩。
- 0: 2002 年开发,支持 RC4、RC2、Triple DES 和 DES 加密。
- 2: 支持 SES 和通过 WinZip 的 AES 加密;更正的 RC2-64 版本支持 SES 加密。2003 年开发。
- 1: 2004 年开发的文档证书存储。
- 2.0: 2004 年开发的文档目录加密。
- 3.0: 2006 年开发的 UTF-8(文档 Unicode)文件名存储。扩展了哈希列表、加密算法(Twofish 和 Blowfish)以及支持的压缩算法(PPMd+ 和 LZMA)。
- 3.1: 2007 年开发的 SHA-256/384/512 的已纠正标准哈希值。
- 3.2: 2007 年开发的文档压缩方法 97(WavPack)。
- 3.3: 它定义了文档格式修改,通过 JTC 1/SC 34 N 1621 进行 JTC 1 RER(参考解释报告)等方法,为 PKWARE 应用指南提供了许多标准的参考。2012 年开发。
- 3.4: 2014 年开发,更新了 PKWARE, Inc. 的办公地址。
- 3.5: 2018 年开发。它是文档压缩方法 99、96 和 16,DOS 时间戳精度和时期,添加了用于解密和密钥的其他字段,以及澄清和拼写错误。
- 3.6: 2019 年开发,修订了印刷错误。
标准化ISO/IEC JTC 1 表示,在 2010 年 4 月进行了一次投票,以决定是否应将一个项目指定为建立一个与 ZIP 兼容的 ISO/IEC 国际标准格式。该项目名为文档打包,被认为是 ZIP 兼容的“最小压缩存档格式”,可与 EPUB、Office Open XML 和 OpenDocument 等多种标准一起使用。 ISO/IEC 21320-1 的“文档容器文件-第一部分:核心”于 2015 年发布,其中规定“文档容器文件符合 ZIP 文件”,并要求以下主要 ZIP 文件格式限制: - 存档不得跨越两个或多个卷或不连续。
- 禁止“打补丁数据”功能。
- 禁止数字签名功能。
- 禁止加密功能。
- 在 ZIP 存档中,文件只能是未压缩的,或者使用“deflate”压缩。
ZIP 的设计.ZIP 文件是用于保存两个或多个文件的存档。它允许包含的文件使用不同的方法压缩,也可以简单地存储任何文件而不进行压缩。所有文件都独立存储,允许同一存档中的不同文件使用多种方法压缩。由于文件是在 zip 存档中单独压缩的,因此可以添加新文件或提取它们,而无需对整个存档进行解压缩或压缩。这与压缩的 tar 文件格式形成对比,后者不易实现此类随机访问处理。 一个目录位于 ZIP 文件末尾。它识别 ZIP 中包含哪些文件,并识别该文件在 ZIP 中的位置。它允许 ZIP 阅读器在不读取整个 ZIP 存档的情况下加载文件列表。此外,ZIP 存档可以添加与 ZIP 存档无关的额外数据。它允许通过将程序代码添加到任何 ZIP 存档并命名文件为可执行文件来将 ZIP 存档制成自解压存档。此外,保存目录可以在最后通过将其附加到无害文件(包括 GIF 图像文件)来覆盖 zip 文件。 ZIP 格式使用 32 位 CRC 算法,并添加了所有条目元数据的两个副本,以更好地防止数据丢失。 ZIP 的结构ZIP 文件可以通过一个位于存档结构末尾的正确结尾的中央目录记录来识别,以便于添加新文件。存档中所有目录或文件的名称应在中央目录条目中命名,并包含其他条目元数据以及 ZIP 文件中的偏移量,表示原始条目数据,如果中央目录记录的结尾代表一个非空存档。 - 这使得文件存档列表可以快速选择,因为不必读取整个存档来查找文件列表。
- 在 ZIP 文件中,条目还包含本地文件头中的这些信息以增加冗余。
- 仅在中央目录中命名的文件在文件末尾是有效的,因为 ZIP 文件可能被附加。
- 对于本地文件的头,扫描任何 ZIP 文件都是无效的,因为中央目录可能宣布某些文件已被删除,而某些文件已被升级。
- 在中央目录中,文件条目的顺序不需要与存档中文件条目的顺序相对应。
存储在 ZIP 存档中的所有条目都由本地文件头公告,其中包含文件详细信息,例如文件名、文件大小和注释,后跟“额外”数据字段,然后是可能加密、可能压缩的文件数据。“额外”数据字段对于 ZIP 格式的可扩展性至关重要。 “额外”数据字段用于支持文件属性、WinZip 兼容 AES 加密、ZIP64 格式以及更高分辨率的 Unix 和 NTFS 文件时间戳。通过“额外”数据字段可以实现许多其他扩展。此外,规范要求 ZIP 工具忽略它们不识别的 Extra 字段。 ZIP 格式使用特定的四字节 **“签名”** 来表示文件中的各种结构。所有文件条目都以特定的签名突出显示。中央目录记录的结尾由其特定的签名表示,并且所有条目都以中央目录中中央文件头的四字节签名开头。 在本教程中,我们将通过 Ubuntu 终端 zip 和 unzip 目录。 首先查看当前目录中存在的目录数量。  目前,我们有一个 **javatpoint** 目录,将在下一步进行 zip。 ZIP 目录使用以下命令 ZIP javatpoint 目录。
 再次查看当前目录中存在的目录数量。这里,现在我们有了一个额外的目录,它被创建为一个 zip 文件。  与 zip 类似,我们可以 unzip 压缩过的目录。看,就像我们下面做的那样。 Unzip 目录使用以下命令 unzip 压缩过的目录。
 额外信息zip 命令有各种标志来设置 zip 文件的属性。有关这些标志的更多信息,请寻求帮助。

|