Практические примеры использования tar

Oct 11, 2018 07:03 · 369 words · 2 minute read tar ubuntu debian centos

Для создания и манипуляций с архивами в Linux-дистрибутивах используется утилита командной строки tar. C помощью этой утилиты можно как извлечь данные из файлов tar, pax, cpio, zip, jar, ar и даже ISO (образы cdrom), так и создать соотвествующие архивы.

Чаще всего используются следующие опции данной утилиты:

  • -j - использовать сжатие архива с помощью bzip2;
  • -v - запуск команды в режиме verbose - для просмотра прогресса выполнения;
  • -f - указание имени архива;
  • -W - верификация архива;
  • -z - использовать сжатие архива с помощью gzip;
  • -t - просмотр содержимого архива;
  • -c - создание нового архива;
  • -r - добавление или обновление файлов или каталогов в уже существующий архив;
  • -u - аналог опции -r, но данные добавляются только если у них более поздняя дата модификации;
  • -x - извлечение данных из архива.

В общем виде команда выглядит так tar -[ОПЦИИ] имя_архива архивируемые_файлы. Рассмотрим несколько конкретных примеров.

  1. Создание несжатого архива (с расширением .tar):
tar -cvf /path/to/foo.tar /path/to/foo/

Примечание. Можно использовать абсолютные пути к файлам, вместо относительных, как в примере выше.

  1. Создание сжатого gzip-архива (с расширением .tgz):
tar -czvf /path/to/foo.tgz /path/to/foo/
  1. Создание сжатого bzip2-архива (с расширением .bz2):
tar -cjvf /path/to/foo.tgz /path/to/foo/
  1. Создание сжатого gzip-архива (с расширением .tgz) без файлов с расширением jpg, gif, png, wmv, flv, tar, gz, zip:
tar -czvf /path/to/foo.tgz --exclude=\*.{jpg,gif,png,wmv,flv,tar.gz,zip} /path/to/foo/.
  1. Создание архива без добавления абсолютного пути в метаданные (может быть полезно при извлечении данных из архива):
tar -zcvf /path/to/foo.tgz -C/path/to/foo .
  1. Создание архива всех файлов в текущей директории, начинающихся на i:
tar -cvf fullbackup.tar i*
  1. Добавление файла в существующий архив:
tar --append --file=backup.tar anaconda-ks.cfg
  1. Слияние содержимого двух архивов в один (добавляет содержимое fullbackup.tar в архив backup.tar):
tar --concatenate --file=backup.tar fullbackup.tar
  1. Извлечение содержимого несжатого архива:
tar -xvf /path/to/foo.tar
  1. Извлечение содержимого сжатого архива (формат .tgz):
tar -xzvf /path/to/foo.tgz
  1. Извлечение содержимого сжатого архива (формат .bz2):
tar -xjvf /path/to/foo.bz2
  1. Извлечение содержимого несжатого архива в определенный каталог на диске:
tar -xvf /path/to/foo.tar -C /path/to/destination/
  1. Извлечение конкретного файла из архива:
tar --extract -vv --occurrence --file=./backup.tar anaconda-ks.cfg
  1. Просмотр содержимого gzip-архива:
tar -ztvf /path/to/foo.tgz
  1. Просмотр содержимого bzip2-архива:
tar -jtvf /path/to/foo.tgz
  1. Сохранение символьных ссылок при создании архива (дополнительная опция -h):
tar -cvhf /path/to/foo.tar /path/to/foo/

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

tweet Share