Утилита Tar

Tar – это стандартная утилита, с помощью которой выполняется архивирование файлов ОС. Постепенно из небольшой программы архивации она превратилась в мощный инструмент, поддерживающий работу со многими вариантами архивов и алгоритмами сжатия. Программа поддерживает большое количество параметров.

Общий вид команды:

$ tar опции файл_для_записи /папка_файлами_для_архива

Основные опции:

  • A – добавить файл к архиву;
  • c – создать архив;
  • d – сравнить файлы архива и распакованные файлы в ФС;
  • j – сжать архив с помощью Bzip;
  • z – сжать архив с помощью Gzip;
  • r – добавить файлы в конец архива;
  • t – показать содержимое архива;
  • u – обновить архив относительно ФС;
  • x – извлечь файлы из архива;
  • v – показать подробную информацию о процессе работы;
  • f – файл для записи архива;
  • -C – распаковать в указанную папку;
  • --strip-components – отбросить n вложенных папок.

Чтобы создать архив, используют такую команду:

tar -cvf archive.tar.gz /PATH/to/files

Чтобы распаковать архив tar:

tar -xvf archive.tar.gz

Сжатый архив создается точно так же, только с опцией -z, с шифрованием gizp; если нужно bzip, то применяется опция -j:

tar -zcvf archive.tar.gz /PATH/to/files
$ tar -zxvf archive.tar.gz

Например, чтобы заархивировать папку в ОС:

tar -zcvf home.tar.gz ~/

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

Gzip archive.tar

Также можно убрать сжатие:

gunzip archive.tar.gz

Чтобы добавить файл в архив, используют:

tar -rvf archive.tar file.txt

Для извлечения одного файла синтаксис тот же:

tar -xvf archive.tar file.txt

Можно извлечь несколько файлов по шаблону соответствия с помощью параметра wildcard, например, извлечь все php-файлы:

tar -xvf archive.tar --wildcards '*.php'

По умолчанию распаковать архив tar можно в текущую папку с именем архива, а чтобы распаковать в нужную папку используют ключ -C:

tar -xvf archive.tar -C /PATH/to/dir

Далее рассматриваются альтернативы утилиты tar.