Работа с архивами — одна из базовых и наиболее частых задач в Linux: они используются для создания резервных копий, удобной передачи данных, группировки файлов и экономии дискового пространства. В статье разберём самые популярные утилиты для работы с архивами в Linux — tar, zip и rar — а также покажем их основные команды и сценарии использования.
tar
tar — классическая и наиболее популярная утилита для создания и управления архивами в Linux-дистрибутивах. Она объединяет несколько файлов и каталогов в один архив — tarball.
На большинстве дистрибутивов tar установлен по умолчанию. Однако, если утилита в вашей версии Linux отсутствует, её легко установить.
Debian / Ubuntu:
apt update && apt -y install tarCentOS / RHEL / Rocky / AlmaLinux:
dnf install tarОсновные команды
tar не сжимает файлы — для этого используются сторонние утилиты, например, gzip и bzip. Они не входят в состав tar — их нужно устанавливать отдельно. Однако сейчас bzip почти не используют из-за медленной работы, а по степени сжатия он проигрывает более современным алгоритмам. Поэтому рекомендуем применять gzip.
Создать архив с именем my-archive.tar, содержащий все файлы и поддиректории директории /home/user1/files:
tar -cf my-archive.tar -C /home/user1/filesСоздать архив с именем my-archive.tar.gz с gzip-сжатием:
tar -czf my-archive.tar.gz -C /home/user1/filesСоздать архив с именем my-archive.tar.bz2 с bzip2-сжатием:
tar -cjf my-archive.tar.bz2 -C /home/user1/filesПросмотреть содержимое архива с именем my-archive.tar :
tar -tf my-archive.tar.gz Распаковать содержимое архива в текущий каталог:
tar -xf my-archive.tar.gz Обратите внимание: tar автоматически определяет формат сжатия при распаковке, поэтому указывать дополнительные ключи -z или -j необязательно. При этом можно явно указать алгоритм сжатия, если это требуется, например, для совместимости:
Команды для утилиты tar при использовании gzip-сжатия:
tar -xzf my-archive.tar.gzПри использовании bzip2-сжатия:
tar -xjf my-archive.tar.bz2Распаковать архив в указанный каталог (/home/user2/myfiles):
tar -xf my-archive.tar.gz -C /home/user2/myfilesПрактические сценарии на хостинге/VPS сервере
На практике tar часто используется не только для создания и распаковки архивов, но и для решения повседневных задач на серверах. Вот несколько распространённых сценариев.
Полное резервное копирование сайта перед обновлением CMS (платформа для создания и управления сайтом) или переезде на новый сервер:
tar -czf /backups/site_$(date +%Y%m%d).tar.gz /var/www/my-site/Передача файлов проекта на удалённый сервер:
tar -czf - /var/www/project/ | ssh user1@192.168.32.176 "cat > /home/user1/main-project.tar.gz"gzip
gzip — утилита для сжатия данных без потерь. Для этого gzip использует алгоритм Deflate:
- ищет повторяющиеся цепочки символов (алгоритм LZ77);
- кодирует часто встречающиеся символы более короткими битовыми кодами (кодирование Хаффмана).
gzip можно использовать как отдельную утилиту, например, для сжатия логов, дампов баз данных и т.д. Однако он не может объединить несколько файлов в один архив, и сжимает каждый файл отдельно. Поэтому в Linux gzip часто используют вместе с tar: tar объединяет файлы и каталоги в единый архив, а gzip его сжимает. Например, команда tar -czf archive.tar.gz files/ сначала создаёт tar-архив, а затем сжимает его с помощью gzip. В результате получается файл с расширением .tar.gz.
gzip поддерживает уровни сжатия от 1 до 9. Чем выше уровень, тем сильнее сжатие, но тем больше времени требуется на обработку. По умолчанию используется уровень 6.
На большинстве дистрибутивов gzip установлен по умолчанию. Если в вашей версии Linux gzip отсутствует, утилиту легко установить.
Debian / Ubuntu:
apt update && apt -y install gzipCentOS / RHEL / Rocky / AlmaLinux:
dnf install gzipОсновные команды
Сжать файл my-file.txt, где 9 — максимальное сжатие:
gzip -9 my-file.txtРаспаковать файл my-file.txt.gz:
gunzip my-file.txt.gzZip
Утилита выполняет сразу две функции — создаёт архивы и сжимает их. При этом формат Zip кроссплатформенный: созданные архивы открываются в Windows, macOS и Linux без установки дополнительного ПО. Это удобно для обмена файлами с пользователями других ОС — получатель сможет открыть архив встроенными средствами своей системы. Также Zip позволяет извлекать отдельные файлы без полной распаковки всего архива.
В большинстве дистрибутивов Linux, zip необходимо предварительно установить вручную.
Debian / Ubuntu:
apt update && apt -y install zip unzipCentOS / RHEL / Rocky / AlmaLinux:
dnf install zip unzipОсновные операции
Создать архив с именем my-site.zip:
zip -r my-site.zip /path/to/directory/Создать архив с именем my-site.zip с максимальной степенью сжатия:
zip -9 -r my-site.zip /path/to/directory/Просмотреть содержимое архива без распаковки:
unzip -l my-site.zipРаспаковать архив с именем my-site.zip:
unzip my-site.zipРаспаковать архив в конкретный каталог (/home/user3/site-files):
unzip my-site.zip -d /home/user3/site-filesПрактические сценарии на хостинге/VPS сервере
Сделать резервную копию файлов сайта для дальнейшей ручной загрузки на сервер:
zip -9 -r my-site.zip /var/www/my-site/RAR
Утилита rar создаёт архивы и хорошо сжимает файлы, особенно исполняемые и мультимедиа. Также поддерживает восстановление повреждённых архивов и позволяет установить пароль.
Утилиту rar необходимо установить вручную.
Debian / Ubuntu:
apt update && apt -y install rar unrarCentOS / RHEL / Rocky / AlmaLinux:
В RPM-дистрибутивах установить утилиту rar при помощи пакетного менеджера не получится — пакет отсутствует в официальных репозиториях. Для этого необходимо скачать архив с программой с официального сайта.
Установите утилиту wget, если она предварительно не установлена:
dnf -y install wgetПерейдите в директорию /tmp, куда будем скачивать архив с программой:
cd /tmp- Скачайте архив с официального сайта утилиты wget:
wget https://www.rarlab.com/rar/rarlinux-x64-723.tar.gz- Распакуйте скачанный архив с помощью tar:
tar -xzf rarlinux-x64-723.tar.gz- Перейдите в появившуюся директорию:
cd rar- Скопируйте исходный файл rar в директорию
/usr/local/binи назначьте права доступа 755 (7 — владелец может читать, изменять и выполнять файл, 5 — группа владельца может читать и выполнять файл, 5 — остальные пользователи системы могут читать и выполнять файл:
install -m 755 rar /usr/local/bin/rar- Проверьте корректность установки путем вывода версии rar:
rar vЕсли команда вернула версию и список доступных ключей, то утилита успешно установлена.
Для распаковки архива установите утилиту unrar:
dnf install epel-release && dnf install unrarОсновные операции
Создать архив с именем new-archive.rar с содержимым директории /var/www/my-site/:
rar a new-archive.rar /var/www/my-site/Создать архив с именем new-archive.rar используя максимальное сжатие:
rar a -m5 new-archive.rar /var/www/my-site/Просмотреть содержимое архива без его распаковки:
rar l new-archive.rarРаспаковать архив с именем new-archive.rar:
unrar x new-archive.rarРаспаковать архив в указанный каталог (/home/user3/site-files):
unrar x new-archive.rar /home/user3/site-filesПрактические сценарии на хостинге/VPS сервере
Максимальное сжатие файла архива с резервной копией при ограниченном дисковом пространстве:
rar a -m5 -v100m my-site-backup.rar /var/www/my-site/Создание защищенного RAR-архива при помощи пароля (пароль StrongPassword) для дальнейшей пересылке архива:
rar a -pStrongPassword -m4 secure_backup.rar /var/www/my-site/Обратите внимание: между ключом -p и паролем отсутствует пробел.
Распространённые проблемы
При работе с архивами важно учитывать несколько распространённых проблем.
- Успешное создание архива не гарантирует сохранности данных. При резервном копировании нужно проверить, что архив действительно создан и корректно читается. Для tar-архивов можно, например, проверить содержимое командой
tar -tf archive.tar.gz, а для ZIP —unzip -t archive.zip. - Следите за свободным местом на диске. При создании архива исходные файлы не удаляются, поэтому потребуется место и для них, и для самого архива.
- При работе с архивами, полученными из сторонних источников, следует соблюдать осторожность. Распаковка архива может привести к перезаписи существующих файлов, а специально сформированный архив — содержать пути, выходящие за пределы каталога распаковки. Поэтому перед распаковкой непроверенных архивов рекомендуется сначала просмотреть их содержимое.
Заключение
Выбор инструмента для работы с архивами в Linux зависит от конкретной задачи, требований к совместимости, скорости и степени сжатия. Каждый формат и утилита имеют свои сильные стороны.
tar + gzip — универсальное решение для большинства задач на Linux-серверах. Отличный баланс скорости, надёжности и совместимости. Рекомендуется для выполнения регулярных резервных копий сайтов и важных данных, конфигураций, логов и переноса проектов между серверами.
Zip — хороший выбор при работе на разных ОС. Идеально подходит для отправки архивов Windows-пользователям, а также при работе с хостинг провайдерами.
rar — идеален в случаях, когда требуется максимальное сжатие и дополнительные возможности безопасности включая поддержку паролей, разделение на тома, восстановление повреждённых архивов. Хорошо подходит для архивации мультимедиа, больших проектов и конфиденциальных данных.
Правильно выбранный инструмент вместе с комбинированным использованием архивирования и сжатия, значительно упрощает администрирование, экономит место на диске и ускоряет рабочие процессы.