Архиватор tar
Содержание
Архиватор tar[править]
tar - наиболее распространённый архиватор, используемый в Linux-системах. Сам по себе tar не является архиватором в привычном понимании этого слова, т.к. он самостоятельно не использует сжатие. В то же время, многие архиваторы (например, Gzip или bzip2) не умеют сжимать несколько файлов, а работают только с одним файлом или входным потоком. Поэтому чаще всего эти программы используются вместе. tar создает несжатый архив, в который помещаются выбранные файлы и каталоги, при этом сохраняя некоторые их атрибуты (такие как права доступа). После этого полученный файл *.tar сжимается архиватором, например, gzip. Вот почему архивы обычно имеют расширение .tar.gz или .tar.bz2 (для архиваторов gzip и bzip2 соответственно)
Использование[править]
tar запускается с обязательным указанием одного из основных действий, самые распространенные из которых - создание и распаковка архивов, далее задаются прочие параметры, зависящие от конкретной операции.
Создание архива[править]
Для создания архива нужно указать tar соответствующее действие, что делается с помощью ключа -c. Кроме того, для упаковки содержимого в файл необходим ключ -f.
Далее укажем сначала имя будущего архива, а затем те файлы, которые хотим упаковать.
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-архива один или несколько файлов[править]
Порой из tar-архивов (.tar, .tar.gz, .tar.bz2) очень больших объемов требуется извлечь далеко не все содержимое, а лишь несколько определенных файлов. В таких случаях разархивировать исходный tar целиком нецелесообразно, поскольку не только потребует заметных ресурсов (в первую очередь, это нагрузка на диск), но и может занять продолжительное время.
Разумеется, авторы tar предусмотрели возможность извлечения из архива лишь указанных объектов. Все довольно тривиально — достаточно перечислить нужные файлы в качестве аргументов tar после самого имени архива. Например:
tar -xf archive.tar myfile1 dir2/myfile2
Эта команда извлечет из архива archive.tar файлы myfile1 и dir2/myfile2. В случае со сжатым архивом все делается аналогичным образом — добавляются соответствующие ключи: «z» для .gz (gzip) и «j» для .bz2 (bzip2).
Единственной сложностью может стать указание точного названия файла/полного пути к нему в архиве. Эту проблему можно решить с помощью функции просмотра дерева файлов/каталогов, хранящихся в архиве. Например, так:
tar -tf archive.tar
А для поиска нужного файла по части его названия/пути достаточно добавить через конвеер grep (или egrep) по вкусу.
Прочие возможности[править]
tar предоставляет множество полезных возможностей. Например, можно указать файлы и каталоги, которые не будут включены в архив, добавить файлы в существующий архив, взять список объектов для запаковки из текстового файла и много что ещё. Во всем многообразии опций как всегда поможет разобраться man tar или же tar --help.