Можно ли перечислить все файлы в файле * .tar.gz без сканирования всего содержимого?

Я знаю только так:

tar --full-time -tvf /path/to/file.tar.gz 

Но это делает tar для сканирования всего архива, и это занимает много времени, если оно очень большое. Мой вопрос, может быть, есть способ отсканировать только начало, только заголовок какого-то типа, как это происходит в других форматах, таких как * .7z или * .rar?

  • Как определить, будет ли запущенный tar вызвать диск для заполнения
  • Упаковать файл с tar.gz из корневого каталога
  • archivemount (tar) возвращается до завершения записи (синхронизация при записи?)
  • Как восстановить файл tar, где stderr был смешан с stdout?
  • Содержит ли * скрытые файлы в tar, даже если dotglob не установлен?
  • Включить подкаталог из исключенного каталога в tar-архив
  • Uncompressing .tar.gz архив в конкретный каталог
  • 'find -mtime -1 -print | xargs tar 'архивирует все файлы из каталога, игнорируя аргумент -mtime -1
  • 2 Solutions collect form web for “Можно ли перечислить все файлы в файле * .tar.gz без сканирования всего содержимого?”

    Короткий ответ – нет."

    7Zip , RAR, zip , et al. , – все это двухфункциональные программы / форматы файлов. Они сжимают отдельные файлы, а затем архивируют сжатые результаты. Это приводит к части файла, который не сжат, но, в свою очередь, позволяет программам получать отдельные файлы.

    gzip (часть .gz ) отличается. Он сжимает только один байтовый поток. Байт-поток предоставляется tar . bzip2 ( .bz2 ) делает то же самое, хотя с другим алгоритмом. tar – программа архивирования, а gzip – программа сжатия. Чтобы вообще добраться до архива, поток сначала должен быть распакован. Это может произойти только через весь файл . Затем, и только тогда, смогите добраться до отдельных частей архива.

    Причина, по которой вы не видите здесь шаг gzip заключается в том, что он был встроен в tar , а не непосредственно сам по себе , но, благодаря знанию tar чтобы передать свой выходной поток в gzip .

    Нет, это невозможно. См. Википедию для описания формата файла tar. В принципе, это всего лишь чередующаяся последовательность заголовков и содержимого файла . В начале нет оглавления, вся информация о каждом файле находится в заголовке файла .

    Заголовок включает в себя размер файла, поэтому при простом перечислении содержимого читатель может пропустить чтение всех блоков содержимого, обратившись к началу следующего заголовка. Однако, если tar-файл сжат, что невозможно, потому что сначала нужно разжать содержимое, чтобы он мог пропустить соответствующее количество несжатых байтов.

    Interesting Posts

    поврежденные зависимости при установке Codelite 8 на linux mint

    Как быстро хранить и получать доступ к часто используемым командам?

    Как изменить тему i3

    Не удается найти / bin / avr-g ++

    Почему rmdir и unlink два отдельных системных вызова?

    Идентификатор родителя-сиротца не равен 1, когда родительский процесс выполняется с терминала GNOME

    Список текущих часов inotify (путь, PID)

    Я установил время для неправильного часового пояса, как мне его изменить? (Debian)

    Потерял контроль над окнами, отправленными на монитор по HDMI, который xrandr не обнаруживает

    Поиск темы для рыбы с помощью powerline, полного пути и возврата и возврата каретки после строки подсказки

    Настроить местоположение накопителя

    Команда Vim для вставки символа

    Почему sudo медленно, когда я ошибаюсь в моем пароле?

    Могу ли я запустить команду, загруженную из .bashrc с помощью sudo?

    Как перекрестно скомпилировать node.js для архитектуры ARM? GCC не сообщает FP ABI, скомпилированный для

    Linux и Unix - лучшая ОС в мире.