6.4.3 Как архивировать и распаковывать архивы по SSH. Работа с архивами по SSH

TheHost Unzip Banner

Архивы представляют собой неотъемлемую часть современной работы с данными, обеспечивая эффективное сжатие информации и экономию места на файловой системе. Однако, их значение не ограничивается лишь компактностью – архивы также служат удобным и надежным способом хранения информации. В этой статье мы рассмотрим ключевые консольные инструменты для работы с архивами посредством SSH, подключение к которому необходимо для выполнения любых дальнейших действий.

Популярные форматы архивов:

  • TAR (.tar) – широко используется для архивации файлов на Unix-системах. Программа с тем же названием позволяет работать с различными форматами архивов. Для сжатия применяются внешние утилиты, такие как gzip, bzip2, lzip, и другие. При создании архива может быть записана дополнительная информация, такая как информация о владельце и структуре каталогов.
  • GZ (.tar.gz, .tgz, .tar.gzip) – выполняет сжатие данных при помощи утилиты tar (для одного файла) или связки утилит gzip + tar (для нескольких файлов). Его особенность заключается в возможности работы с непрерывным потоком данных, делая GZ оптимальным инструментом для сжатия интернет-трафика.
  • BZIP2 (.tar.bz2, .tar.bzip2, .tbz2, .tb2, .tbz) – бесплатная утилита, обеспечивающая высококачественную компрессию данных, в основном используемая на Unix-платформах. По сравнению с GZ, она работает медленнее и требует больше вычислительных ресурсов, но обеспечивает более эффективное сжатие.
  • ZIP (.zip) – применяется на операционных системах Windows и позволяет сжимать файлы и каталоги с использованием различных алгоритмов. ZIP поддерживается практически всеми операционными системами, включая Windows, Mac OS X и Unix/Linux. Также возможно создание самораспаковывающегося архива в виде исполняемого SFX-файла.
  • RAR (.rar) – используется для работы с архивацией на операционных системах семейства Windows. Аналогично формату ZIP, RAR поддерживается многими ОС.

Работа с архивами TAR, GZ, BZIP2

Общий синтаксис команд:

tar -аргумент имя_или_путь_к_архиву целевой_файл_или_каталог

Основные аргументы:

  • -c – создать архив.
  • -f – вывести имя или путь до архива.
  • -t – показать файлы в архиве (применяется к уже созданному архиву).
  • -v – показать обрабатываемые файлы.
  • -a – сжать или извлечь данные из архива с автоматическим выбором утилиты (gzip, bzip и т.д.), в зависимости от указанного расширения. Например, если файл называется file.tar.gz, то к архиву автоматически будет применено сжатие с помощью gzip.
  • -x – извлечь данные из архива.
Пример: создание архива .tar
tar -cfv /var/www/example.tar /var/www/examplesite
Пример: извлечение архива .tar в текущую директорию
tar -xfv /var/www/example.tar
Пример: извлечение архива .tar в определённую директорию
tar -xfv /var/www/example.tar -С /var/www/examplesite
Пример: создание архива .tar.gz
tar -cfva /var/www/example.tar.gz /var/www/examplesite
Пример: извлечение архива .tar.gz в текущую директорию
tar -xfva /var/www/example.tar.gz
Пример: извлечение архива .tar.gz в определённую директорию
tar -xfva /var/www/example.tar.gz -C /var/www/examplesite
Пример: создание архива .tar.bz2
tar -cfva /var/www/example.tar.bz2 /var/www/examplesite
Пример: извлечение архива .tar.bz2 в текущую директорию
tar -xfva /var/www/example.tar.bz2
Пример: извлечение архива .tar.bz2 в определённую директорию
tar -xfva /var/www/example.tar.bz2 -C /var/www/examplesite

Работа с .zip-архивами

Для работы с данным типом архивов будут использоваться программы zip и unzip.

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

CentOS/AlmaLinux/RockyLinux
sudo yum insatall zip unzip -y
Debian/Ubuntu
sudo apt-get install zip unzip -y
Пример: создание архива .zip
zip /var/www/example.zip /var/www/examplesite
Пример: извлечение данных из архива .zip
unzip /var/www/example.zip -d /var/www/examplesite

Если не указывать аргумент -d, то файлы будут распакованы в директорию где находится архив, указанный в команде.

Пример: добавление файлов в существующий архив .zip
zip /var/www/example.zip /var/www/newfile1.txt /var/www/newfile2.txt
Пример: просмотр содержимого архива .zip
unzip -l /var/www/example.zip
Пример: извлечение определенных файлов из архива .zip
unzip /var/www/example.zip file1.txt file2.txt -d /var/www/examplesite

Работа с .rar-архивами

Для работы с .rar архивами потребуются утилиты rar и unrar.

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

CentOS/AlmaLinux/RockyLinux
sudo yum install unrar rar -y
Debian/Ubuntu
sudo apt-get install unrar rar -y
Пример: создание архива .rar

Чтобы заархивировать каталог полностью (со всеми вложенными папками и файлами), нужно добавить ключ -r. Команда будет выглядеть так:

rar -r /var/www/example.rar /var/www/examplesite
Пример: извлечение данных из архива .rar
unrar x /var/www/example.rar /var/www/examplesite

Это не ошибка, Вам необходим именно аргумент x для разархивации. Аргумент -x позволяет указать исключения при выполнении команды.

Пример: добавление файлов в существующий архив .rar
rar a /var/www/example.rar /var/www/newfile1.txt /var/www/newfile2.txt
Пример: просмотр содержимого архива .rar
unrar l /var/www/example.rar
Пример: извлечение определенных файлов из архива .rar
unrar e /var/www/example.rar file1.txt file2.txt /var/www/examplesite