要查看归档文件包含哪些文件而不解包,请使用终端的列表命令:ZIP 文件用 unzip -l,TAR 归档用 tar -tf。本指南介绍如何查看文件名、文件夹结构和可用详细信息,同时不解压归档文件。

在 Finder 中使用终端列出 ZIP 文件内容

对于 ZIP 文件,请先使用 unzip -l。小写选项 -l 会列出条目名称、解压后的大小和修改日期。运行 unzip 而不加列表选项,通常会将文件解压到当前目录,因此请保留该选项。相关行为记录在Apple 发布的 unzip 手册中。

  1. 打开终端,并让包含 ZIP 文件的 Finder 窗口保持可见。
  2. 输入 /usr/bin/unzip -l,后面加一个空格。暂时不要按 Return。
  3. 将 ZIP 文件从 Finder 拖到终端窗口中,放在空格之后。
  4. 确认命令以 /usr/bin/unzip -l 开头,后面跟着归档文件的路径,然后按 Return。

如 Apple 的终端指南所述,将文件拖入终端会插入其绝对路径。这样就无需先导航到归档文件所在的文件夹再列出内容。

例如,如果桌面上有一个名为 Archive Inspection Demo.zip 的临时 ZIP 文件,完整命令如下:

/usr/bin/unzip -l "$HOME/Desktop/Archive Inspection Demo.zip"

引号会将示例文件名中的空格保留在同一路径中。此命令要求 ZIP 文件已存在于该位置;它不会创建示例归档。如果你的文件位于其他位置或名称不同,请使用拖放方法,而不要复制示例路径。

Apple 说明,在 Finder 中双击 ZIP 文件会将其展开,展开后的项目会显示在 ZIP 文件旁边。对于本次检查,请选中归档文件并将其拖动。参见 Apple 的 ZIP 使用说明。

使用临时归档练习

你可以只使用虚构文本创建一个小示例。选择一个未使用过的文件夹名称,让练习内容与现有文件分开。

  1. 在 Finder 中前往桌面,然后选择 文件 > 新建文件夹。将文件夹命名为 Archive Inspection Demo。如果该名称已存在,请选择另一个未使用的名称,并在整个练习中使用该名称。Apple 在在 Mac 上将文件整理到文件夹中介绍了如何创建文件夹。
  2. 在文本编辑中创建一个包含 Blue circle sample 的文稿。选择 格式 > 制作纯文本,然后选择 文件 > 保存,将文稿保存到新文件夹中,并命名为 shapes.txt。
  3. 再创建一个包含 Green square sample 的纯文本文稿,并将其保存到该文件夹中,命名为 colors.txt。这些文稿创建和格式转换步骤遵循 Apple 的文本编辑指南。
  4. 在 Finder 中按住 Control 键点按该文件夹,然后选择 压缩。Apple 说明,压缩一个文件夹会生成一个以该文件夹命名的 ZIP。继续之前,请检查是否已存在同名 ZIP;如有必要,请使用新的文件夹名称。参见在 Mac 上压缩和解压缩文件及文件夹。
  5. 使用上面的终端步骤列出生成的 ZIP 内容。

查找与 Archive Inspection Demo/shapes.txt 和 Archive Inspection Demo/colors.txt 对应的条目。请将这些路径视为本示例中预期的路径,而不是经过测试的 Mac 会话记录。条目顺序和其他条目可能有所不同。

原始文件夹仍然存在,因为你是在压缩之前创建它的。文件夹仍然存在并不能说明列表命令解压了任何内容。完成后,你可以在 Finder 中删除这个示例文件夹和 ZIP 文件。

阅读列表并选择所需的详细信息

归档列表可以告诉你其中存储了哪些条目,但不会打开每个条目中的文本或图像。使用此决策指南,选择最精简且有用的检查方式:

你的问题 命令或检查方式 如何理解结果
ZIP 中有哪些条目?它们有多大? unzip -l 后接归档文件路径 查看存储的路径和解压后的大小。
我能只查看 ZIP 条目名称吗? unzip -Z1 后接归档文件路径 每行显示一个条目名称,不含汇总表。
名称相似的文件是否位于不同文件夹中? 比较完整条目路径 Drafts/shapes.txt 和 Final/shapes.txt 是不同的路径。
桌面上是否已存在某个列出的文件? 在 Finder 中单独检查其预期位置 仅有归档条目并不能证明该位置存在单独的文件。

要更清晰地仅查看此虚构示例中的文件名,请运行:

/usr/bin/unzip -Z1 "$HOME/Desktop/Archive Inspection Demo.zip"

这里,-Z 用于选择 ZipInfo 模式,而 1 表示仅显示文件名,每行一个。存储的目录名称仍会包含在显示的路径中。相关选项记录在 Apple 发布的 zipinfo 手册中。

比较条目时请保留完整路径。两个名为 shapes.txt 的文件可以位于归档中的不同文件夹。相反,列表也无法说明之后将条目解压到含有同名文件的文件夹时会发生什么。此工作流程通过显示列表而不写入归档文件,避开了目标位置带来的问题。

成功列出内容的含义也比完整归档测试更有限。unzip 手册记录了单独的 -t 操作,该操作会在内存中展开条目并检查其中存储的校验和。看到条目名称并不等于测试了其内容。参见列出和测试选项说明。

检查 TAR 归档和压缩的 TAR 文件

对于 TAR 归档,请使用 /usr/bin/tar -tf,后面接其路径。在 Apple 发布的手册中,-t 用于选择列表模式,-f 用于指定归档文件。读取时,同一实现会自动识别 gzip 压缩,因此此命令格式也适用于 gzip 压缩的 TAR 归档。参见 Apple 发布的 tar 手册。

例如,桌面上已有一个名为 Sample Bundle.tar.gz 的虚构归档时,完整命令如下:

/usr/bin/tar -tf "$HOME/Desktop/Sample Bundle.tar.gz"

这是另一个独立示例:上面的 Finder 练习创建的是 ZIP,而不是这个 TAR 文件。只有在此类文件已存在后才运行此命令;或者输入 /usr/bin/tar -tf,后面加一个空格,再将现有的临时 TAR 归档拖入终端。

要查看更详细的列表,请添加 v:

/usr/bin/tar -tvf "$HOME/Desktop/Sample Bundle.tar.gz"

手册说明,详细列表输出类似于长格式目录列表。请在命令中保留 t:x 用于将内容解压到磁盘。该手册还说明,解压时,归档中重复的名称可能会覆盖较早的条目,这也是应区分列出内容和解包的另一个原因。参见 tar 模式和详细选项。

Apple 快捷指令能如何用于此工作流程?

快捷指令可以接收选定的 Finder 项目,并作为 Finder 操作显示。这种集成提供了自动化的起点,但它本身并未定义归档列表操作。Apple 的 Finder 和快速操作说明介绍了快捷指令的运行位置,而上面的命令手册则说明了实际的列表行为。

改编现有快捷指令前,请先检查其中的操作。在编辑器的操作库中,将指针移到某个操作上,然后点按其信息按钮。对于快捷指令中已有的操作,请按住 Control 键点按其图标,然后选择 显示信息。Apple 表示,此描述包含该操作接受的输入和产生的输出。参见在 Mac 上的快捷指令中浏览操作列表。

对于此任务,请区分三种不同的事物:选定的归档是一个文件,列表是描述条目的文本,而这些条目名称并不是已解压的文件对象。通过解包归档生成文件的操作会改变工作流程。所引用的 Apple 指南并未说明有原生的归档目录浏览器,因此这里的完整检查步骤使用终端,而不假设存在具备该功能的操作。

输入设置也很重要。Apple 说明,快捷指令可以限制接受的内容类型,并在没有输入时使用 停止并响应。Finder 工作流程应接受文件;缺少输入时应明确停止,而不是让下游步骤收到空值。相关控件见在 Mac 上从其他 App 运行快捷指令时限制输入。

如果归档无法正确列出

根据结果决定下一步,而不是反复更改选项:

  • 找不到归档文件: 在 Finder 中确认文件仍然存在,然后拖动对应的文件并重新构建命令。如果 Finder 创建的 ZIP 名称不同,请重新检查示例名称。
  • 输出提示格式错误或读取错误: 检查尚未成功完成。请重新确认选择了预期的归档文件;更改文件扩展名并不能证明其内容采用了相应格式。
  • 出现错误前显示了部分名称: 将结果视为不完整。不要据此推断可见条目就是归档中的全部内容。
  • 某个条目本身是另一个归档: 外层列表会将该嵌套归档识别为一个条目,但不会说明嵌套归档自身包含什么。

检查普通 ZIP 的最简完整流程是:输入 /usr/bin/unzip -l,加一个空格,将归档拖入,然后按 Return。阅读完整的条目路径和所有最终消息。获取所需的文件名或结构后,检查就完成了,归档文件也没有被解包。

来源