div.main {margin-left: 20pt; margin-right: 20pt}
Создание архивов: программа tar Richard
Petersen
Утилита tar предназначена для создания архивов файлов и каталогов. С
помощью этой программы можно архивировать файлы, обновлять их в архиве и вводить
в этот архив новые файлы. Можно архивировать и целые каталоги со всеми их
файлами и подкаталогами. При необходимости все эти файлы и подкаталоги можно
восстановить из архива. Программа tar предназначалась для создания архивов на
лентах, отсюда и название tar (tape archive, т.е. "архив на ленте"). Архив можно
создавать на любом устройстве, например, на дискете или в архивном файле на
диске. Программа tar — идеальное средство для создания резервных копий
файлов или объединения нескольких файлов в один с целью передачи его по
сети.
В операционной системе FreeBSD программу tar часто используют для создания
архивов на устройствах и в файлах. Ей можно дать указание архивировать файлы на
определенном устройстве или в определенном файле, для чего служит опция f
с именем устройства или файла. Синтаксис команды tar с опцией f
очевиден из нижеследующего примера. Имя устройства или файла часто называют
именем архива. При создании файла для tar-архива к имени этого файла обычно
добавляется расширение .tar. Это лишь условное обозначение, и оно не
обязательно. В команде можно указать сколько угодно имен файлов. Если указано
имя каталога, то в архив включаются и все подкаталоги этого каталога.
$ tar опцииf имя_архива.tar
имена_файлов_и_каталогов
Для создания архива служит опция с. В сочетании с опцией f
опция с приводит к созданию архива в файле или на устройстве. Эта опция
ставится непосредственно перед опцией f. Обратите внимание, что дефиса
перед опцией нет. В следующем примере каталог mydir и все его подкаталоги
сохраняются в файле myarch.tar.
$ tar cf myarch.tar mydir
Потом пользователь может извлекать каталоги из архива, применяя команду tar с
опцией х. Опция xf позволяет извлекать файлы из архивного файла
или устройства. При извлечении формируются и все подкаталоги. В следующем
примере посредством опции xf команде tar дается указание извлечь
все файлы и подкаталоги из файла myarch.tar.
$ tar xf myarch.tar
Для добавления файлов в существующий архив служит опция r. В
приведенном ниже примере пользователь добавляет файлы из каталога letters
в архив myarch.tar.
$ tar rf myarch.tar letters
Если нужно изменить какой-либо файл в архивированных ранее каталогах, можно с
помощью опции u дать команде указание обновить архив, заменив некоторые
файлы их новыми версиями. Программа tar сравнивает время последнего
изменения каждого архивированного файла и соответствующего файла в каталоге и
копирует в архив все файлы с более поздней датой модификации. В архив будут
добавлены и все вновь созданные в этих каталогах файлы. В следующем примере
пользователь обновляет файл myarch.tar, вводя в него все измененные и
вновь созданные в каталоге mydir файлы.
$ tar uf myarch.tar mydir
Если вы хотите посмотреть, какие файлы хранятся в архиве, дайте команду
tar с опцией t. В следующем примере показано, как с помощью этой
команды можно вызвать список всех файлов, хранящихся в архиве
niyarch.tar.
$ tar tf niyarch.tar
Для создания резервных копий файлов на определенном устройстве укажите имя
этого устройства в качестве имени архива. В следующем примере пользователь
создает архив на дискете в устройстве /dev/fd0 и копирует в него все
файлы из каталога mydir
$ tar cf /dev/fd0 mydir
Для того чтобы извлечь архивированные таким образом файлы, используйте опцию
xf.
$ tar xЈ /dev/fd0
Если архивируемые файлы занимают больше места, чем имеется на носителе,
например на дискете, создайте tar-архив, состоящий из нескольких томов (дискет
или лент).
Посредством опции M команде tar дается указание выводить
сообщение о том, что текущий носитель заполнен. При архивировании файлов на
дискете с использованием опции M в случае заполнения дискеты программа
tar предложит вам вставить новую дискету. Таким образом вы сможете
записать свой архив на нескольких дискетах.
$ tar cfM /dev/fd0 mydir
При использовании команды tar операция сжатия архивных файлов не
выполняется. Если вы хотите сжать файлы, дайте tar указание вызвать
утилиту gzip. Если команда tar применяется с опцией z, то
сначала программа gzip выполняет сжатие а затем tar архивирует
файлы. Та же опция z обеспечит вызов gzip для распаковки файлов
при извлечении их из архива.
$ tar cfz myarch.tar mydir
Помните, что между сжатием отдельных файлов с последующим архивированием и
сжатием всего архива есть разница. Во многих случаях архив создается, чтобы
переслать по сети несколько файлов в виде одного tar-файла. Для сокращения
времени передачи размер этого архива должен быть по возможности небольшим. Чтобы
добиться этого, можно с помощью утилиты gzip сжать архивный tar-файл, уменьшив
его размер, а затем переслать сжатую версию. Получатель распакует его и
восстановит файл. В результате применения утилиты gzip к tar-файлам часто
получаются файлы с расширением .tar.gz. Расширение .gz добавляется
к сжатому gzip-файлу. В следующем примере создается сжатая версия файла
myarch.tar под тем же именем, но с расширением .gz.
$ gzip my arch.tar $ Is myarch.tar.gz
Если вы хотите создать архив на некотором устройстве, например на ленте или в
файле, нужно дать команду tar с опцией f и именем устройства или
файла. Такой вариант эффективен при создании резервных копий файлов. Имя
устройства по умолчанию хранится в файле /etc/default/tar. Синтаксис
команды tar, подразумевающей использование устройства, заданного по
умолчанию (ленточного накопителя), приведен в следующем примере. Опция f
и имя устройства не задаются. Если указано имя каталога, то в архив включаются
все его подкаталоги.
$ tar опция имена_каталогов_и_файлов
В представленном ниже примере каталог mydir со всеми подкаталогами
сохраняется на ленте как на носителе по умолчанию.
$ tar с mydir
А в этом примере каталог mydir со всеми файлами и подкаталогами
извлекается из устройства, принятого по умолчанию, и помещается в рабочий
каталог пользователя.
$ tar x mydir
|