Найти тему
linux.feature

команда tar

В консоли без GUI очень часто нужно что-то упаковать и чаще всего это целая папка, а вот вспомнить и набрать все необходимые ключи универсального архиватора tar в ОС Linux сложно.

Но tar только собирает все файлы в один, а упаковкой занимаются уже его плагины. Есть два основных gzip и bzip2. В чём разница ? Первый универсальный и быстрый. Второй отлично работает с текстовыми данными, например дампами баз данных.

Для наглядности упакуем папку с бэкапом нескольких баз данных. mysql_2020-02-29 с исходным размером в 214815Kb.

Результат работы двух разных плагинов.
mysql_2020-02-29.tar.bz2 28662Кб - 13,34%
mysql_2020-02-29.tar.gz 39976Кб - 18,61%

Экономия больше чем в 10Мб, а если представить, что это периодический ежесуточный бэкап с глубиной восстановления в 90 дней, то только при выборе правильного плагина для архиватора tar можно сэкономить почти 1Гб дискового пространства. Но нельзя забывать, что есть плата за такой подарок - больший расход ресурсов процессора и памяти во время создания архива.

Для создания архива папки folder gzip

tar -cvzf folder.tar.gz ./folder

Для создания архива папки folder bzip2

tar -cvjf folder.tar.bz2 ./folder

Распаковка универсальная по ключам, архиватор tar сам распознает каким плагином создавался архив.

tar -xvf folder.tar.gz
tar -xvf folder.tar.bz2

Чтобы каждый раз не вспоминать необходимые ключи в файл ~/.bashrc можно добавить удобные псевдонимы сразу с ключами.

# .bashrc
alias tarx='tar -xvf'
alias targ='tar -cvzf'
alias tarb='tar -cvjf'

Применяются они при каждом входе в оболочку bash.