Программа обработки архивов tar

Контролирование формата архива

7.1 Обработка атрибутов файла *
Обработка атрибутов файла
--atime-preserve
Не изменяет время доступа к дампированным файлам.
-m
--modification-time
Не меняет время модификации файлов.
При использовании этой опции tar оставляет время модификации
файлов, которые он извлекает, соответствующим времени, когда
файлы были извлечены, вместо того, чтобы присваивать ему
время, записанное в архиве.
Эта опция не имеет смысла с '--list'.
--same-owner


Сохраняет извлеченные файлы с тем же правом собственности.
'-p
--same-permissions
--preserve-permissions
Извлекает всю информацию о защите.
Эта опция заставляет tar устанавливать режимы (разрешения
доступа) извлеченных файлов, как было записано в архиве.
Если эта опция не используется, текущий umask устанавливает
ограничения возможностей извлеченных файлов.
Эта опция не имеет смысла с '--list'.
-s
--same-order
--preserve-order
- 118 -
Сортирует имена для извлечения в соответствующий архив.
Эта опция сообщает tar, что список имен файлов, которые
нужно занести в список или извлечь, сортируется в том же
порядке, что и файлы в архиве. Это позволяет использовать
большой список имен даже на маленькой машине, которая в
другом случае не будет способна держать все эти имена в
памяти. Такой отсортированный список можно легко создать с


помощью применения 'tar -t' к архиву и редактирования его
вывода.
В современных компьютерных системах эта опция, наверно, не
нужна.
--preserve
То же, что '--same-permissions' и '--same-order'
одновременно.
Опция '--preserve' не имеет краткого имени. Она эквивалентна
'--same-permissions' и '--same-order' одновременно.
7.2 Выбор формата архива *
-V имя
--label=имя
Создает архив с именем тома "имя".
Эта опция заставляет tar писать заголовок тоа в начале
архива. Если используется '--multi-volume' ('-M'), каждый
том архива имеет заголовок 'имя Volume n', где 1
соответствует первому тому, 2 - второму, и т.д.
-z
--gzip
--ungzip
Фильтрует архив через gzip.
Эта опция работает на физических устройствах (ленточных и
т.д.) и отдаленных файлах как на нормальных файлах, данные на
такие устройства или с них или отдаленных файлов
- 119 -
переблокируются другой копией программы tar для проведения
заданного размера блока. По умолчанию используются
коипрессионные параметры: если вам нужно их отменить,
используйте опцию '--gzip' и выполните gzip. (Или задайте
переменную среды 'GZIP'.) Если опция '--gzip' дана дважды,
или используется опция '--compress-blocks', tar перемещает
архив на границу следующего блока.
FIXME: pxref Blocking
Это может использоваться на нескольких устройствах, что
требует, чтобы все операции были умещались в определенный
размер.
Опция '--gzip' не работает с опцией '--multi-volume' или c
командами '--update', '--append', '--concatenate', '--delete'.
Будет неточностью сказать, что GNU tar работает во
взаимодействии с gzip с помощью метода, похожего на zip.
Естественно, tar и gzjp могут работать вместе с одного вызова,
например:
tar cfz archive.tar gz subdir
для сохранения всего 'subdir' в gzip-ированный архив. Затем вы
можете набрать:
tar xfz archive.tar.gz
для расширения и распаковки.
Отличие в том, что уплотнен весь архив. С помощью zip члены
архива архивируются индивидуально, а метод tar дает лучшее
уплотнение.


С другой стороны, можно посмотреть содержимое
архива zip без его распаковки. А при использовании тандема tar
и gzip вы должны распаковывать архив для того, чтобы
посмотреть его содержимое. Однако это можно делать без места
на диске, при помощи каналов:
tar tfz archive.tar gz
- 120 -
О разрушенных уплотненных архивах: у gzip'ированных файлов нет
излишка для максимального уплотнения. Адаптивная природа схемы
уплотнения значит, что таблицы уплотнения неявно
распространены на весь архив. Если вы потеряли несколько
блоков, динамичная конструкция таблиц уплотнения становится
несинхронизированной, и невелик шанс, что вы сможете
впоследствии обновить архив. Существуют предложения о
потомном или пофайловом уплотнении в GNU tar. Это позволит
просмотр содержимого без распаковки и десинхронизированное
уплотнение каждого тома или файла в случае разрушенных
архивов. Действуя так, мы можем освободить определенную часть
уплотнения. Но тогда обновление может быть легче. Итак, есть и
за, и против. Посмотрим.
-Z
--compress
--uncompress
Фильтрует архив через compress. Иначе - как '--gzip' ('-z').
--use-compress-program=программа
Фильтрует через prog (может принимать '-d').
7.3 Использование меньшего количества места при уплотнении.
7.3.1 Создание и чтение уплотненных архивов
'--compress'является индикатором архивов, хранящихся в уплотненном
формате. Опция '--compress' используется при сохранении времени в сети
и места в каналах, и когда мало памати. '--compress' заставляет tar
уплотнять архив при его записи и распаковывать при чтении.
Чтобы выполнить уплотнение, tar выполняет утилиту compress. По
умолчанию tar использует определенные параметры уплотнения. Если вы
хотите их отменить, отмените опцию '--compress' и выполните утилиту
compress. Используется вызов утилиты compress из самого tar, т.к. у
нее нет доступа к удаленным ленточным устройствам.
- 121 -
или операциями '--append', '--update' и 'delete'.
FIXME: xref Modifying
для получения информации об этих ооперациях.


Если недоступна утилита уплотнения, tar сообщает об ошибке.
'--compress-blocks' работает как '--compress', но при использовании
в сочетании с '--create' также заставляет tar перемещать последний
блок архива к границе следующего блока. Это используется на
определенных устройствах при требовании, чтобы все операции умещались
в заданный оазмер.
Заметьте: программа уплотнения может быть запатентована, и поэтому мы
рекомендуем вам прекратить ее использовать. Мы надеемся, что в будущем
будут другие программы уплотнения. Тогда мы изменим имя этой опции.
-Z
--compress
--uncompress
-z
Когда задана эта опция, tar уплотняет архив (при его записи)
или распаковывает (при его чтении). Используется в сочетании
с '--create', '--extract', '--list' и '--compare'.
'--compress-block'
'-z -z'
Действует как '--compress', но
FIXME: почему бы не использовать '-Z' вместо '-z -z'?
- 122 -
Вы можете уплотнить архивы с помощью '--gzip'. tar использует
программу gzip для уплотнения или распаковки архива при его записи или
распаковке.
'--compress'. GNU Project не рекомендует вам использовать compress,
потому что алгоритм его использования запатентован. Просто это будет
посягательством на авторские права.
прямого блокирования.
FIXME: pxref Blocking
Вместо использования реальных ленточных устройств исользуйте
'--gzip-block' или '--compress-block'.
Файл разрежен, если он содержит блоки нулей, существование которых
записано, но для них не выделяется места на диске. Когда вы задаете
опцию '--sparse' в сочетании с операцией '--create', tar при
архивировании проверяет все файлы на разреженность. Если он находит
разреженный файл, то использует разреженное представление файла в
архиве.
FIXME: xref Creating Archives
для получения более подробной информации о создании архивов.
dbm, содержащих много нулей. Эта опция сильно уменьшает место,
необходимое для хранения такого архива.
- 123 -
Пожалуйста, всегда используйте '--sparse' при выполнении резервного
копирования системы, чтобы избежать архивирования расширенных форм


файлов, хранящихся в разреженном виде в системе. Даже если в вашей
системе в данный момент нет разреженных файлов, они могут появиться в
будущем. Если вы используете '--sparse' во время резервного
копирования, вы можете быть уверены, что архив никогда не займет
больше места на носителе, чем то, что файлы занимают на диске (в
противном случае архивирование диска с разаеженными файлами может
потребовать сотен лент.
FIXME: xref возрастающий, когда задано имя узла.
tar игнорирует опцию '--sparse' при чтении архива.
'--sparse'
'-S'
опцию '--label=архивная_метка' ('-V 'архивная_метка'). Появится
специальная запись, идентифицирующая метка_тома как имя архива перед
архивом, которая будет выводиться при использовании опции '--list'.
Если вы создаете многотоиный архив при помощи '--multi-volume',
FIXME: pxref Using Multiple Tapes
то метка тома будет иметь 'Volume nnn', добавленное к имени, которое
вы даете, где n - номер тома архива. (Если вы используете опцию
'--label=архивная_метка' при чтении архива, она проверяет соответствие
метки на ленте той, что вы дали.
FIXME: xref Special Options for Archiving
- 124 -
участок содержимого файла, который никогда не записывается. Содержимое
дырки читается как нули. Во многих операционных системах память диска
не рассчитана на дырки, но они включаются в длину файла. Если вы
архивируете такой файл, tar может создать архив, который длиннее
изначального. Чтобы tar попытался идентифицироватть дырки в файле,
используйте '--sparse'. Когда вы используете опцию '--sparse', то для
любых файлов, использующих меньше места на диске, чем ожидается, tar
ищет файл для последовательных массивов нулей. Затем у файла, в
котором находятся последовательные массивы нулей, он архивирует только
"истинное содержимое". При извлечении (использование '--sparse' не
является необходимым для извлечения) любые такие файлы и
cозданные там, где были найдены продолжительные массивы нулей. Таким
образом, если вы используете '--sparse', архивы tar занимают не больше


места, чем изначальные.
Когда tar читает файлы, он вызывает модификацию их времени. Чтобы
tar пытался оставить время таким, каким оно было перед тем, как файл
был прочитан, используйте опцию '--atime-preserve'. Она не работает с
файлами, которые не являются вашими собственными, и не работает
интерактивно с пошаговой разгрузкой,
FIXME: pxref Making Backups
но достаточно хороша для некоторых других целей.
7.5 Структура архива *
Хотя архив может содержать много файлов, он сам - тоже не более чем
просто обыкновенный файл. Подобно другим файлам, архивный файл может
быть записан на устройство для хранения, на ленту или диск, его можно
посылать через канал или по сети, хранить в архивной системе файлов и
даже хранить в другом архиве. Архивным файлов нелегко манипулировать
(и даже читать) без использования утилиты tar или режима Tar в Emacs.
Физически архив состоит из серии элементов файлов, заканчивающейся
элементом конца архива, который состоит из 512 байтов нулей. Элемент
- 125 -
файла обычно описывает один из файлов архива (член архива) и состоит
из заголовка и содержимого файла. Заголовки файлов содержат имена
файлов и статистику, информацию о контрольных суммах, которую tar
использует для определения разрушенных файлов, и информацию о типах.
Одно и то же имя может иметь более чем один член архива. Такое может
быть, например, если в архиве хранится более одной версии файла. Для
получения информации о добавлении новых версий файла в архив
FIXME: pxref Modifying
Кроме элементов, описывающих члены архива, архив может содержать
элементы, которыe tar использует для хранения информации.
FIXME: xref Archive Label
Там приводится пример такого архивного элемента.
7.6 Оперирование режимными модификаторами *
-W
--verify
Пытается проверить архив после его записи.
Эта опция заставляет tar проверять архив после его записи.
Каждый том проверяется после того, как он был записан, и все
несоответствия записываются на стандартный вывод ошибки.
Для проверки требуется, чтобы архив был на носителе, на


котором возможен возврат назад. Это значит, что каналы,
некоторые картриджные устройства и еще некоторые устройства
не могут быть проверены.
--remove-files
Удаляет файлы, занося их в архив.
-k
- 126 -
--keep-old-files
Не заменяет файлы, существующие в архиве, новыми.
Опция --keep-old-files предохраняет tar от замены
существующих файлов на новые с теми же именами. Опция
--keep-old-files не имеет смысла в сочетании с '--list'.
'S
--sparse
Обрабатывает поврежденные файлы.
Эта опция проверяет файлы, подлежащие занесению в архив, на
повреждения и, если они есть, специально их обрабатывает.
Опция '--sparse' используется, когда много файлов dbm,
например, подвергнутых резервному копированию. Использование
этой опции очень уменьшает количество памяти, необходимое
для хранения таких файлов. В более поздних версиях эту
опцию, наверное, можно будет удалить, и проверка и обработка
поврежденных файлов будет происходить автоматически
специальными опциями GNU. На данном этапе эта опция нужна
для задания на командной строке при создании или модификации
архива.
-O
--to-stdout
Извлекает файлы на стандартный вывод.
При использовании этой опции, вместо создания заданных
файлов, tar записывает содержимое извлеченных файлов на
стандартный вывод. Это может использоваться, только если вы
извлекаете файлы, чтобы послать их через канал.
Эта опция не имеет смысла с '--list'.
--ignore-failed-read
Не существует на нечитаемых файлах.
FIXME: Этот раздел нужно записать.
При использовании совместимости указателей файлов Unix для обновления
- 127 -
каталоговых структур указанные файлы идут в один каталог и затем этот
каталог tar'ируется.
Привести более новый пример, использующий абсолютные имена.
Пайпирование одного tar к другому - простой способ копирования
содержимого каталога с одного диска на другой при сохранении дат,
режимов, хозяев и структуры указателей всех этих файлов.
cd sourcedirectory; tar сf - . | (cd targetdir; tar xf -)
или
FIXME: правильно ли следующее использование стандартного ввода/вывода?

Содержание раздела