Вообще-то tar — это старая программа, разработанная в те времена, когда файлы и архивы хранились магнитных лентах. Сама аббревиатура tar расшифровывается как Tape ARchiver. Из-за своего прямого предназначения он не сжимает данные, а лишь объединяет их в единый файл с последовательным доступом для записи на ленту и по умолчанию этот архивный файл создается на ленточном накопителе, точнее на устройстве /dev/rmt0.
Однако tar совместно с программой сжатия gzip, а в последнее время — bzip2, является основным архиватором *nix систем. tar собирает указанные файлы в единый архив, а gzip или более новый и более эффективный компрессор bzip2 (и требующий больших мощностей от компьютера) сжимают этот архив. Сами по себе gzip и bzip для создания архивов достаточно бесполезны — они не умеют собирать файлы, а только сжимают один файл и пишут на его место его архив (т.е. файл-источник аккуратно удаляют), а в паре с tar это очень мощное средство.
Первым аргументом к программе tar всегда должна быть одна из следующих опций: Acdrtux, за которой следуют необязательные дополнительные параметры. Эти опции определяют основные функции программы:
- -A, —catenate, —concatenate
добавляет файлы в архив - -c, —create
создает новый архив - -d, —diff, —compare
находит различия между объектами архива и их «исходниками» в файловой системе - —delete
удаляет файлы из архива (эта опция не используется для архивов на магнитной ленте!) - -r, —append
добавляет файлы в конец архива - -t, —list
выводит содержание архива - -u, —update
добавляет только те файлы, которые ранее не были включены в архив - -x, —extract, —get
извлекает файлы из архива
Так как с лентами сейчас практически никто не работает, то к этим обязательным параметрам следует добавить еще один — f. Без него tar будет использовать вместо архива устройство /dev/rmt0.
Последними аргументами к программе tar являются имена архивируемых файлов или каталогов. При использовании имени каталога всегда предполагается, что его подкаталоги будут также включены в архив.
Создание tar архива
Создание архива и сжатие его gzip. Используется параметр -z:
$ tar -czf <имя_архива> <имя_файла|каталога> ... <имя_файла|каталога>
Суффикс .gz не добавляется автоматически к имени создаваемого архива, поэтому лучше сразу задать имя архива с указанием обеих суффиксов: имя.tar.gz.
Создание архива и сжатие его bzip2. Используется параметр -j:
$ tar -cjf <имя_архива> <имя_файла|каталога> ... <имя_файла|каталога>
Лучше сразу задать имя архива с указанием обеих суффиксов: имя.tar.bz2.
При создании архива можно использовать параметр -v — включает вывод списка упакованных в процессе работы файлов.
Распаковка tar архива
Распаковка tar архива задается с помощью ключа -x:
tar -xvf /path/to/archive.tar.bz2
распакует содержимое архива, сжатого bzip2 в текущую папку. Альтернативное место для распаковки можно указать с помощью ключа -C:
$ tar -xvf archive.tar.bz2 -C /path/to/folder
распакует содержимое архива, сжатого gzip в папку /path/to/folder.
Просмотр содержимого архива
Для просмотра содержимого архива используйте следующую команду:
$ tar -tf archive.tar.gz
Она выведет простой список файлов и каталогов в архиве, но если добавить ключ -v, будет выведен подробный список с указанием размера, прав доступа и прочих параметров.
tar обладает очень большими возможностями и кучей параметров, посмотреть которые можно по
$ man tar
или
$ tar --help