В консоли без 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.