Что делает архив tar доступным для поиска?

634
Peltier

Кажется, что архив tar, доступный для поиска, может иметь большое значение при перечислении или извлечении всего нескольких файлов. К сожалению, справочная страница действительно не хватает информации. Кажется, что сжатые архивы не доступны для поиска [1], но этот пост не содержит никаких доказательств. Есть ли более надежный источник информации для чтения по этому вопросу?

[1] https://serverfault.com/questions/59795/is-there-a-smarter-tar-or-cpio-out-there-for-efficiently-retrieving-a-file-store

1
Что не так с [этим ответом] (https://serverfault.com/a/546691/251339)? DavidPostill 7 лет назад 1
@DavidPostill: В этом ответе нет ничего плохого, это просто ответ на другой вопрос. Peltier 7 лет назад 0
В самом деле? Таким образом, «GNU tar создает« доступные для поиска »архивы по умолчанию». и "Сжатые архивы не являются" доступными для поиска ", потому что текущая (1.26) сжатая tar-версия GNU для внешней программы" не отвечает на ваш вопрос? DavidPostill 7 лет назад 0
Это был не первоначальный вопрос, и он не дает никаких подтверждающих доказательств. Я согласен, что это хорошее начало. Peltier 7 лет назад 0
Подтверждающим доказательством является исходный код. DavidPostill 7 лет назад 0
Я надеялся получить лучшее объяснение, чем «читать исходный код». Но продолжайте и закройте мой вопрос, если это то, что вы хотите сделать. Peltier 7 лет назад 0
Я не собираюсь закрывать это. Кто-то может иметь приемлемый ответ для вас DavidPostill 7 лет назад 0
@DavidPostill: спасибо, я ценю это. Peltier 7 лет назад 0

1 ответ на вопрос

1
BillThor

Заголовок файла для каждого файла включает его размер в архиве. Это позволяет пропустить содержимое файла, если оно не требуется. Tar просто ищет следующий заголовок, следующий за содержимым файла. Есть документация по формату заголовка.

Сжатые tar-файлы - только это. Вы можете свободно переключать несжатый и сжатый формат tar-файла, используя соответствующую программу распаковки (часто gunzip) или программу сжатия (gzip). С некоторыми программами tar это единственный вариант. Сам файл tar остается доступным для поиска, даже если он сжат.

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

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

Похожие вопросы