Это старая версия документа.


введение

tar - наиболее распространенный архиватор, используемый в Linux-системах. сам по себе tar не является архиватором в привычном понимании этого слова, т.к. он самостоятельно не использует сжатие. в то же время, многие архиваторы (например, Gzip или bzip2) не умеют сжимать несколько файлов, а работают только с одним файлом или входным потоком. поэтому чаще всего эти программы используются вместе. tar создает несжатый архив, в который помещаются выбранные файлы и каталоги, при этом сохраняя некоторые их атрибуты (такие как права доступа). после этого полученный файл *.tar сжимается архиватором, например, gzip. вот почему архивы обычно имеют расширение tar.gz или tar.bz2 (для архиваторов gzip и bzip2 соответственно)

использование

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

создание архива

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

tar -cf txt.tar *.txt

упакует все файлы с расширением txt в архив txt.tar. так и создается простейший архив без сжатия. для использования сжатия не нужно запускать что-либо еще, достаточно указать tar, каким архиватором следует сжать архив. для двух самых популярных архиваторов gzip и bzip2 ключи будут -z и -j

tar -cvzf files.tar.gz ~/files

упакует папку ~/files со всем содержимым в сжатый с помощью gzip архив

tar -cvjf files.tar.bz2 ~/files

создаст аналогичный архив, используя для сжатия bzip2.

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

помимо gzip и bzip2 можно использовать, например, lzma (ключ –lzma) или xz (ключ -J), при этом соответствующий архиватор должен быть установлен в системе

распаковка архива

действие «распаковка» задается с помощью ключа -x. и тут снова потребуется ключ -f. также добавим ключ -v для визуального отображения хода процесса.

tar -xvf /path/to/archive.tar.bz2

распакует содержимое архива в текущую папку. альтернативное место для распаковки можно указать с помощью ключа -C

tar -xvf archive.tar.lzma -C /path/to/folder

просмотр содержимого архива

для просмотра содержимого архива используйте следующую команду:

tar -tf archive.tar.gz

она выведет простой список файлов и каталогов в архиве. если же добавить ключ -v, будет выведен подробный список с указанием размера, прав доступа и прочих параметров (так же, как по ls -l)


прочие возможности

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


FIXME возможно, стоит добавить описание работы с tar-архивами при помощи Nautilus/Dolphin, Xarchiver
1)
без него tar будет выдавать результат на stdout при упаковке и пытаться читать архив с stdin при распаковке