Прочитать содержимое архива без извлечения?

Прочитать содержимое архива без извлечения?

Как можно прочитать содержимое определенного файла в архиве, не извлекая .zip, в котором он находится? Я использую командную строку Linux.

Более раннийвопросспрашивает о просмотре каталога архива. Но мне недостаточно увидеть просто список файлов в архиве, мне нужно увидеть содержимое файла в архиве.

решение1

unzip -l archive.zipвыводит список содержимого ZIP-архива, чтобы убедиться, что ваш файл находится внутри.

Используйте эту -pопцию для записи содержимого именованных файлов на стандартный вывод (экран) без необходимости распаковывать весь архив.

unzip -p archive.zip file1.txt | less

Для такого рода операций я всегда передаю вывод в less, в противном случае весь файл вылетает на экран прежде, чем вы успеете его прочитать.

Кстати, zcat отлично подходит для просмотра содержимого файлов .gz без необходимости их предварительной распаковки.

Редактировать:Изменил этот ответ, чтобы использовать -pвместо -c. -pизвлекает файл байт-за-байтом, при этом -cпечатает имя файла и может выполнять преобразование EOL. Также unzip -pпозволяет извлекать несколько файлов, но не выводит в указанном порядке, как catэто делает.

решение2

Вы можете использоватьvimперечислить содержимоеzip/rar/tarархив:

vim archive.zip

КСТАТИ:здесьтот же вопрос.

решение3

zipinfo— еще один инструмент, который вы можете использовать. Он полезен, если вы работаете в заблокированной системе, где unzipэто не разрешено.

решение4

Запустите Emacsкомандную строку и откройте ваши zip-файлы с помощью Zip-Archivemode. Без какой-либо настройки Emacs/elisp (которой обычно боятся новые пользователи), вы увидите сведения о файле, например from zipinfo: modes, length, date, time

После этого вы сможете открывать файлы в буферах и даже сохранять изменения обратно в архив с помощью стандартных сочетаний клавиш:

  • Введите имя файла в списке, чтобы открыть его.
  • Редактировать и сохранить с помощьюCtrl-x Ctrl-s
  • Удалить буфер Ctrl-k, чтобы вернуться к архивному буферу и продолжить

В Zip-Archiveбуфере используйте Ctrl-h mдля получения всех сочетаний клавиш, доступных в представлении справки.

Надеюсь, это поможет вам открыть для себя замечательные возможности Emacs.

Связанный контент