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

Oct 11, 2018 07:03 · 385 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/

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

2) Создание сжатого gzip-архива (с расширением .tgz):

tar -czvf /path/to/foo.tgz /path/to/foo/

3) Создание сжатого bzip2-архива (с расширением .bz2):

tar -cjvf /path/to/foo.tgz /path/to/foo/

4) Создание сжатого 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/.

5) Создание архива без добавления абсолютного пути в метаданные (может быть полезно при извлечении данных из архива):

tar -zcvf /path/to/foo.tgz -C/path/to/foo .

6) Создание архива всех файлов в текущей директории, начинающихся на i:

tar -cvf fullbackup.tar i*

7) Добавление файла в существующий архив:

tar --append --file=backup.tar anaconda-ks.cfg

8) Слияние содержимого двух архивов в один (добавляет содержимое fullbackup.tar в архив backup.tar):

tar --concatenate --file=backup.tar fullbackup.tar

9) Извлечение содержимого несжатого архива:

tar -xvf /path/to/foo.tar

10) Извлечение содержимого сжатого архива (формат .tgz):

tar -xzvf /path/to/foo.tgz

11) Извлечение содержимого сжатого архива (формат .bz2):

tar -xjvf /path/to/foo.bz2

12) Извлечение содержимого несжатого архива в определенный каталог на диске:

tar -xvf /path/to/foo.tar -C /path/to/destination/

13) Извлечение конкретного файла из архива:

tar --extract -vv --occurrence --file=./backup.tar anaconda-ks.cfg

14) Просмотр содержимого gzip-архива:

tar -ztvf /path/to/foo.tgz

15) Просмотр содержимого bzip2-архива:

tar -jtvf /path/to/foo.tgz

16) Сохранение символьных ссылок при создании архива (дополнительная опция -h):

tar -cvhf /path/to/foo.tar /path/to/foo/

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

tweet Share