Тариф успешно добавлен в корзину
В корзину
url image

Работа с архивами в Linux

Работа с архивами — одна из базовых и наиболее частых задач в Linux: они используются для создания резервных копий, удобной передачи данных, группировки файлов и экономии дискового пространства. В статье разберём самые популярные утилиты для работы с архивами в Linux — tar, zip и rar — а также покажем их основные команды и сценарии использования. 

tar

tar — классическая и наиболее популярная утилита для создания и управления архивами в Linux-дистрибутивах. Она объединяет несколько файлов и каталогов в один архив — tarball. 

На большинстве дистрибутивов tar установлен по умолчанию. Однако, если утилита в вашей версии Linux отсутствует, её легко установить.

Debian / Ubuntu: 

apt update && apt -y install tar

CentOS / 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: 

  1. ищет повторяющиеся цепочки символов (алгоритм LZ77);
  2. кодирует часто встречающиеся символы более короткими битовыми кодами (кодирование Хаффмана). 

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 gzip

CentOS / RHEL / Rocky / AlmaLinux:

dnf install gzip

Основные команды

Сжать файл my-file.txt, где 9 — максимальное сжатие:

gzip -9 my-file.txt

Распаковать файл my-file.txt.gz:

gunzip my-file.txt.gz

Zip

Утилита выполняет сразу две функции — создаёт архивы и сжимает их. При этом формат Zip кроссплатформенный: созданные архивы открываются в Windows, macOS и Linux без установки дополнительного ПО. Это удобно для обмена файлами с пользователями других ОС — получатель сможет открыть архив встроенными средствами своей системы. Также Zip позволяет извлекать отдельные файлы без полной распаковки всего архива. 

В большинстве дистрибутивов Linux, zip необходимо предварительно установить вручную.

Debian / Ubuntu:

apt update && apt -y install zip unzip

CentOS / 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 unrar

CentOS / RHEL / Rocky / AlmaLinux:

В RPM-дистрибутивах установить утилиту rar при помощи пакетного менеджера не получится — пакет отсутствует в официальных репозиториях. Для этого необходимо скачать архив с программой с официального сайта.

  1. Установите утилиту wget, если она предварительно не установлена:

dnf -y install wget
  1. Перейдите в директорию /tmp, куда будем скачивать архив с программой:

cd /tmp
  1.  Скачайте архив с официального сайта утилиты wget:
wget https://www.rarlab.com/rar/rarlinux-x64-723.tar.gz
  1. Распакуйте скачанный архив с помощью tar:
tar -xzf rarlinux-x64-723.tar.gz
  1. Перейдите в появившуюся директорию:
cd rar
  1. Скопируйте исходный файл rar в директорию /usr/local/bin и назначьте права доступа 755 (7 — владелец может читать, изменять и выполнять файл, 5 — группа владельца может читать и выполнять файл, 5 — остальные пользователи системы могут читать и выполнять файл:
install -m 755 rar /usr/local/bin/rar
  1. Проверьте корректность установки путем вывода версии 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 — идеален в случаях, когда требуется максимальное сжатие и дополнительные возможности безопасности включая поддержку паролей, разделение на тома, восстановление повреждённых архивов. Хорошо подходит для архивации мультимедиа, больших проектов и конфиденциальных данных.

Правильно выбранный инструмент вместе с комбинированным использованием архивирования и сжатия, значительно упрощает администрирование, экономит место на диске и ускоряет рабочие процессы.

 

Этот материал был полезен?

Скидка новым клиентам
Закажите сервер сегодня и получите скидку на первый месяц аренды!
Наш сайт использует cookies Вы можете отключить их в настройках браузера, но это может ограничить функционал. Оставаясь на сайте, вы соглашаетесь с использованием cookies.