Практические примеры использования tar
Oct 11, 2018 07:03 · 369 words · 2 minute read
Для создания и манипуляций с архивами в 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 -[ОПЦИИ] имя_архива архивируемые_файлы
. Рассмотрим несколько конкретных примеров.
- Создание несжатого архива (с расширением
.tar
):
tar -cvf /path/to/foo.tar /path/to/foo/
Примечание. Можно использовать абсолютные пути к файлам, вместо относительных, как в примере выше.
- Создание сжатого gzip-архива (с расширением
.tgz
):
tar -czvf /path/to/foo.tgz /path/to/foo/
- Создание сжатого bzip2-архива (с расширением
.bz2
):
tar -cjvf /path/to/foo.tgz /path/to/foo/
- Создание сжатого 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/.
- Создание архива без добавления абсолютного пути в метаданные (может быть полезно при извлечении данных из архива):
tar -zcvf /path/to/foo.tgz -C/path/to/foo .
- Создание архива всех файлов в текущей директории, начинающихся на
i
:
tar -cvf fullbackup.tar i*
- Добавление файла в существующий архив:
tar --append --file=backup.tar anaconda-ks.cfg
- Слияние содержимого двух архивов в один (добавляет содержимое
fullbackup.tar
в архивbackup.tar
):
tar --concatenate --file=backup.tar fullbackup.tar
- Извлечение содержимого несжатого архива:
tar -xvf /path/to/foo.tar
- Извлечение содержимого сжатого архива (формат
.tgz
):
tar -xzvf /path/to/foo.tgz
- Извлечение содержимого сжатого архива (формат
.bz2
):
tar -xjvf /path/to/foo.bz2
- Извлечение содержимого несжатого архива в определенный каталог на диске:
tar -xvf /path/to/foo.tar -C /path/to/destination/
- Извлечение конкретного файла из архива:
tar --extract -vv --occurrence --file=./backup.tar anaconda-ks.cfg
- Просмотр содержимого gzip-архива:
tar -ztvf /path/to/foo.tgz
- Просмотр содержимого bzip2-архива:
tar -jtvf /path/to/foo.tgz
- Сохранение символьных ссылок при создании архива (дополнительная опция
-h
):
tar -cvhf /path/to/foo.tar /path/to/foo/
Консольная утилита tar
- одна из наиболее часто используемых в мире Linux - будет полезна при создании резервных копий, установке пакетов, обмене файлами, шифровании и дешифровке данных.