Чтобы посмотреть, какие файлы содержит архив, не распаковывая его, используйте команды просмотра в Терминале: unzip -l для ZIP-файлов или tar -tf для архивов TAR. В этом руководстве показано, как проверить имена файлов, структуру папок и доступные сведения, не извлекая файлы из архива.

Просмотр списка файлов ZIP-архива из Finder с помощью Терминала

Для ZIP-файла начните с команды unzip -l. Строчная опция -l выводит имена записей, их несжатый размер и даты изменения. Команда unzip без опции просмотра обычно извлекает файлы в текущую папку, поэтому оставьте эту опцию в команде. Это поведение описано в руководстве Apple к распространяемой версии unzip.

  1. Откройте Терминал и оставьте на экране окно Finder, в котором находится ZIP-файл.
  2. Введите /usr/bin/unzip -l и поставьте пробел. Пока не нажимайте Return.
  3. Перетащите ZIP-файл из Finder в окно Терминала после пробела.
  4. Убедитесь, что команда начинается с /usr/bin/unzip -l, за которым следует путь к архиву, затем нажмите Return.

При перетаскивании файла в Терминал вставляется его абсолютный путь, как описано в руководстве Apple по Терминалу. Так вам не придётся переходить в папку архива перед просмотром списка файлов.

Например, если на Рабочем столе есть временный ZIP-файл с именем Archive Inspection Demo.zip, полная команда будет такой:

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

Путь в кавычках позволяет сохранить пробелы в этом примере имени файла. Команда требует, чтобы ZIP-файл находился по указанному адресу; она не создаёт пример архива. Если ваш архив находится в другом месте или называется иначе, воспользуйтесь перетаскиванием, а не копируйте пример пути.

Apple указывает, что двойной щелчок по ZIP-файлу в Finder распаковывает его, а распакованный объект появляется рядом с архивом. Для просмотра содержимого выберите архив и перетащите его. Подробнее см. инструкции Apple по работе с ZIP-файлами.

Практика с временным архивом

Вы можете создать небольшой пример, используя только искусственный текст. Выберите имя папки, которое ещё не используется, чтобы упражнение не затронуло существующие файлы.

  1. В Finder перейдите на Рабочий стол и выберите Файл > Новая папка. Назовите папку Archive Inspection Demo. Если такое имя уже существует, выберите другое свободное имя и используйте его во всём упражнении. Создание папок описано в статье Apple «Упорядочивание файлов в папках на Mac».
  2. В TextEdit создайте документ с текстом Blue circle sample. Выберите Формат > Сделать простой текст, затем Файл > Сохранить и сохраните документ в новой папке под именем shapes.txt.
  3. Создайте ещё один документ в формате простого текста с содержимым Green square sample и сохраните его в этой папке под именем colors.txt. Эти действия по созданию и преобразованию документов описаны в руководстве Apple по TextEdit.
  4. Щёлкните папку в Finder, удерживая клавишу Control, и выберите Сжать. Apple указывает, что при сжатии одной папки создаётся ZIP-файл с тем же именем. Прежде чем продолжить, убедитесь, что файл ZIP с таким именем ещё не существует; при необходимости выберите новое имя папки. Подробнее см. «Архивация и разархивация файлов и папок на Mac».
  5. Просмотрите список файлов в получившемся ZIP-архиве, выполнив описанные выше действия в Терминале.

Найдите записи, соответствующие путям Archive Inspection Demo/shapes.txt и Archive Inspection Demo/colors.txt. Это ожидаемые пути для созданного примера, а не запись из проверенного сеанса работы на Mac. Порядок записей и наличие дополнительных записей могут различаться.

Исходная папка остаётся на месте, потому что вы создали её до сжатия. Её наличие не означает, что команда просмотра списка извлекла какие-либо файлы. Закончив, вы можете удалить папку примера и ZIP-файл в Finder.

Чтение списка и выбор нужных сведений

Список архива показывает, какие записи в нём хранятся. Он не открывает текст или изображение внутри каждой записи. Воспользуйтесь этой таблицей, чтобы выбрать минимальную подходящую проверку:

Ваш вопрос Команда или проверка Как интерпретировать результат
Какие записи есть в 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 при чтении, поэтому такой способ подходит и для TAR-архивов, сжатых gzip. См. руководство 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 Shortcuts в этом процессе?

Shortcuts может получать выбранные элементы Finder и отображаться как действие Finder. Эта интеграция служит отправной точкой для автоматизации, но сама по себе не определяет операцию просмотра списка файлов в архиве. В инструкциях Apple по Finder и быстрым действиям описано, где запускаются команды быстрого доступа, а фактическое поведение при просмотре списка определяется приведёнными выше руководствами по командам.

Прежде чем адаптировать существующую команду быстрого доступа, проверьте её действия. В библиотеке действий редактора наведите указатель на действие и нажмите кнопку информации. Для действия, уже добавленного в команду, щёлкните его значок, удерживая клавишу Control, и выберите Показать информацию. Apple указывает, что в описании приводятся допустимые входные данные и получаемый результат. Подробнее см. «Навигация по списку действий в Shortcuts на Mac».

В этом процессе важно различать три вещи: выбранный архив — это файл, список — это текстовое описание записей, а имена записей не являются извлечёнными файлами. Действие, которое распаковывает архив и создаёт файлы, изменит ход работы. В цитируемых руководствах Apple не описан встроенный обозреватель содержимого архива, поэтому здесь для полного просмотра используется Терминал, а не предполагается наличие действия с такой возможностью.

Настройки входных данных тоже важны. Apple указывает, что команда быстрого доступа может ограничивать принимаемые типы содержимого и использовать действие Stop and Respond, если входные данные не получены. В процессе из Finder следует принимать файлы, а при отсутствии входных данных команда должна чётко остановиться, а не передавать дальше пустое значение. Эти настройки описаны в статье «Ограничение входных данных для команды быстрого доступа, запущенной из другого приложения на Mac».

Если список архива выводится неправильно

Ориентируйтесь на результат, чтобы выбрать следующий шаг, а не меняйте опции снова и снова:

  • Архив не найден: убедитесь, что файл по-прежнему существует в Finder, затем соберите команду заново, перетащив именно этот файл. Проверьте пример имени, если Finder создал ZIP с другим именем.
  • В выводе сообщается об ошибке формата или чтения: проверка завершилась неудачно. Убедитесь, что выбрали нужный архив. Изменение расширения имени файла не подтверждает, что его содержимое соответствует указанному формату.
  • Перед ошибкой появились некоторые имена: считайте результат неполным. Не делайте вывод, что видимые записи составляют весь архив.
  • Одна из записей — другой архив: внешний список указывает вложенный архив как запись. Он не показывает содержимое самого вложенного архива.

Самый короткий полный способ проверить обычный ZIP — ввести /usr/bin/unzip -l, поставить пробел, перетащить архив и нажать Return. Прочитайте полные пути записей и все заключительные сообщения. Когда вы получите нужные имена файлов или структуру, проверка завершена — архивные файлы останутся нераспакованными.

Источники