дПЛХНЕОФБГЙСFreeBSD FAQWWWBOARDGuestbookHome

Создание архивов: программа tar Richard Petersen

Утилита tar предназначена для создания архивов файлов и каталогов. С помощью этой программы можно архивировать файлы, обновлять их в архиве и вводить в этот архив новые файлы. Можно архивировать и целые каталоги со всеми их файлами и подкаталогами. При необходимости все эти файлы и подкаталоги можно восстановить из архива. Программа tar предназначалась для создания архивов на лентах, отсюда и название tar (tape archive, т.е. "архив на ленте"). Архив можно создавать на любом устройстве, например, на дискете или в архивном файле на диске. Программа tar ≈ идеальное средство для создания резервных копий файлов или объединения нескольких файлов в один с целью передачи его по сети.

В операционной системе FreeBSD программу tar часто используют для создания архивов на устройствах и в файлах. Ей можно дать указание архивировать файлы на определенном устройстве или в определенном файле, для чего служит опция f с именем устройства или файла. Синтаксис команды tar с опцией f очевиден из нижеследующего примера. Имя устройства или файла часто называют именем архива. При создании файла для tar-архива к имени этого файла обычно добавляется расширение .tar. Это лишь условное обозначение, и оно не обязательно. В команде можно указать сколько угодно имен файлов. Если указано имя каталога, то в архив включаются и все подкаталоги этого каталога.

Для создания архива служит опция с. В сочетании с опцией f опция с приводит к созданию архива в файле или на устройстве. Эта опция ставится непосредственно перед опцией f. Обратите внимание, что дефиса перед опцией нет. В следующем примере каталог mydir и все его подкаталоги сохраняются в файле myarch.tar.

Потом пользователь может извлекать каталоги из архива, применяя команду tar с опцией х. Опция xf позволяет извлекать файлы из архивного файла или устройства. При извлечении формируются и все подкаталоги. В следующем примере посредством опции xf команде tar дается указание извлечь все файлы и подкаталоги из файла myarch.tar.

Для добавления файлов в существующий архив служит опция r. В приведенном ниже примере пользователь добавляет файлы из каталога letters в архив myarch.tar.

Если нужно изменить какой-либо файл в архивированных ранее каталогах, можно с помощью опции u дать команде указание обновить архив, заменив некоторые файлы их новыми версиями. Программа tar сравнивает время последнего изменения каждого архивированного файла и соответствующего файла в каталоге и копирует в архив все файлы с более поздней датой модификации. В архив будут добавлены и все вновь созданные в этих каталогах файлы. В следующем примере пользователь обновляет файл myarch.tar, вводя в него все измененные и вновь созданные в каталоге mydir файлы.

Если вы хотите посмотреть, какие файлы хранятся в архиве, дайте команду tar с опцией t. В следующем примере показано, как с помощью этой команды можно вызвать список всех файлов, хранящихся в архиве niyarch.tar.

Для создания резервных копий файлов на определенном устройстве укажите имя этого устройства в качестве имени архива. В следующем примере пользователь создает архив на дискете в устройстве /dev/fd0 и копирует в него все файлы из каталога mydir

Для того чтобы извлечь архивированные таким образом файлы, используйте опцию xf.

Если архивируемые файлы занимают больше места, чем имеется на носителе, например на дискете, создайте tar-архив, состоящий из нескольких томов (дискет или лент).

Посредством опции M команде tar дается указание выводить сообщение о том, что текущий носитель заполнен. При архивировании файлов на дискете с использованием опции M в случае заполнения дискеты программа tar предложит вам вставить новую дискету. Таким образом вы сможете записать свой архив на нескольких дискетах.

При использовании команды tar операция сжатия архивных файлов не выполняется. Если вы хотите сжать файлы, дайте tar указание вызвать утилиту gzip. Если команда tar применяется с опцией z, то сначала программа gzip выполняет сжатие а затем tar архивирует файлы. Та же опция z обеспечит вызов gzip для распаковки файлов при извлечении их из архива.

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

Если вы хотите создать архив на некотором устройстве, например на ленте или в файле, нужно дать команду tar с опцией f и именем устройства или файла. Такой вариант эффективен при создании резервных копий файлов. Имя устройства по умолчанию хранится в файле /etc/default/tar. Синтаксис команды tar, подразумевающей использование устройства, заданного по умолчанию (ленточного накопителя), приведен в следующем примере. Опция f и имя устройства не задаются. Если указано имя каталога, то в архив включаются все его подкаталоги.

В представленном ниже примере каталог mydir со всеми подкаталогами сохраняется на ленте как на носителе по умолчанию.

А в этом примере каталог mydir со всеми файлами и подкаталогами извлекается из устройства, принятого по умолчанию, и помещается в рабочий каталог пользователя.