Как распаковать и создать архивы в Linux: .zip, .tar, .gz, .rar

Когда нужно объединить данные в одном файле, незаменимым инструментом являются утилиты для архивирования.
Архив – это файл, который объединяет один или несколько других файлов и/или директорий в единую структуру. Его основная цель – упрощение хранения, передачи или резервного копирования данных. Архивы часто сжимаются, что позволяет значительно уменьшить размер файлов без потери их структуры и содержимого.
Использование архивов также позволяет сохранять структуру директорий и разрешения файлов, что критически важно для резервного копирования и развертывания программного обеспечения.
Как установить Python на Linux
Независимо от формата – .zip, .tar, .gz или .rar – Linux предлагает простые и гибкие инструменты для работы с ними. В этой статье вы узнаете, как создавать, распаковывать и оптимально использовать архивы в своих задачах.
1. Работа с архивом .zip в Linux
Архивы формата .zip являются одними из самых распространенных для сжатия и хранения файлов. В Linux для работы с ними используются специальные утилиты zip (для создания архивов) и unzip (для их распаковки).
Утилита zip
Самая простая команда для создания архива:
# zip archive.zip file1.txt file2.txt
Эта команда создает архив с названием archive.zip, который содержит два файла: file1.txt и file2.txt. Чтобы архивировать каталог вместе со всеми его файлами и подкаталогами, нужно использовать параметр -r (рекурсивно):
# zip -r archive.zip directory
Эта команда создаст архив archive.zip, который будет содержать все файлы из каталога directory, включая его подкаталоги.
Обратите внимание! Если пропустить параметр -r, в архив будет добавлен только сам каталог, но без файлов внутри.
Утилита zip в Linux позволяет создавать защищенные паролем архивы с помощью параметра -e. Это предполагает базовый уровень безопасности, поскольку для доступа к файлам в архиве пользователь должен ввести пароль.
# zip -e archive.zip file1.txt file2.txt file2.txt
Приведенная выше команда создает архив с названием archive.zip и добавляет в него файлы file1.txt и file2.txt. Кроме того, она устанавливает пароль для архива, что предоставляет базовый уровень защиты содержимого.
После выполнения команды терминал выведет запрос для ввода пароля:
# Enter password: – ВВЕСТИ ПАРОЛЬ
# Verify password: – ПОДТВЕРДИТЬ ПАРОЛЬ
Вы вводите пароль, а затем подтверждаете его повторным вводом. Для безопасности пароль не будет отображаться в терминале. Созданный архив будет защищен паролем. Чтобы распаковать его, нужно будет ввести этот пароль.
Чтобы добавить новые файлы в уже созданный архив .zip, используется все та же утилита zip:
# zip archive.zip newfile.txt
Эта команда добавит newfile.txt в архив archive.zip, если такой файл еще не существует в архиве.
Чтобы удалить файлы из архива .zip, используйте команду zip с параметром -d:
# zip -d archive.zip file1.txt
Эта команда удалит file1.txt из архива archive.zip.
Утилита unzip
Для распаковки архивов формата .zip в Linux используется утилита unzip. Она является простой в использовании, но имеет много интересных параметров для гибкой работы. Рассмотрим основные и дополнительные возможности этой утилиты.
Самой простой командой для распаковки архива является:
# unzip archive.zip
Эта команда распаковывает архив в текущий каталог. Чтобы распаковать архив в конкретный каталог, используйте параметр -d:
# unzip archive.zip -d /путь/к/директории/
где /путь/к/директории/ – путь к каталогу, куда нужно распаковать архив.
Если каталога не существует, его нужно создать заранее (например, командой mkdir -p /путь/к/директории/).
Обе команды для разархивирования, приведенные выше, подходят для разархивирования архива, защищенного паролем. После их ввода необходимо будет дополнительно ввести пароль. При вводе правильного пароля архив будет успешно распакован. Если пароль неправильный, система сообщит об ошибке. Если нужно избежать ввода пароля вручную, можно использовать параметр -P, чтобы указать пароль прямо в команде:
# unzip -P «ваш_пароль» archive.zip
Внимание! Использование этого подхода опасно, поскольку пароль сохраняется в истории терминала. Лучше использовать этот метод только в скриптах, где это необходимо, и убедиться, что доступ к ним ограничен.
Также обратите внимание! Пароль защищает только содержимое файлов, но не сам архив. Например, список файлов можно увидеть без пароля с помощью следующей команды:
# unzip -l archive.zip

По умолчанию, если файл с таким же именем уже существует в каталоге, утилита unzip запрашивает, нужно ли его перезаписать. Чтобы автоматически перезаписывать файлы, вы можете использовать параметр -o:
# unzip -o archive.zip
Это полезно для автоматизированных сценариев, где взаимодействие с пользователем нежелательно. Если вы хотите избежать перезаписи существующих файлов, используйте параметр -n:
# unzip -n archive.zip
Файлы, которые уже есть в каталоге, останутся без изменений, а новые файлы будут добавлены.
Как распаковать только отдельные файлы
Иногда нужно распаковать только отдельные файлы из архива. Для этого укажите названия файлов после команды:
# unzip archive.zip file1.txt file2.txt file1.txt
Как распаковать файлы с определенным расширением
Также можно использовать шаблоны, например, распаковать все файлы с расширением .txt:
# unzip archive.zip «*.txt»
В этом случае все текстовые файлы будут удалены из архива.
Как узнать, не поврежден ли архив
Чтобы убедиться, что архив не поврежден, можно использовать параметр -t:
# unzip -t archive.zip
Эта команда проверит архив и сообщит, есть ли проблемы.
Как распаковать все файлы в одном каталоге
По умолчанию архивы распаковываются с сохранением структуры каталогов. Если нужно распаковать все файлы в одном каталоге, используйте параметр -j:
# unzip -j archive.zip
Это позволяет извлечь все файлы, игнорируя их начальные пути.
Как узнать прогресс распаковки
Если вы распаковываете большой архив и хотите видеть подробный прогресс, используйте опцию -v:
# unzip -v archive.zip
Что делать, если утилит zip и unzip нет?
Обратите внимание! На некоторых дистрибутивах Linux утилиты zip и unzip могут отсутствовать по умолчанию. Перед началом работы их необходимо установить. Для CentOS, AlmaLinux, RockyLinux выполните команду:
# yum install zip unzip -y
Для Debian, Ubuntu используйте команду:
# apt-get install zip unzip -y
Этот шаг гарантирует, что все необходимые инструменты будут доступны для работы с архивами. Теперь вы с инструментами zip и unzip в Linux!
2. Работа с архивом .tar и .gz в Linux
Форматы .tar и .gz обычно используются в Linux для упаковки и сжатия файлов. Архивы tar объединяют несколько файлов в один архив, а gz обеспечивает сжатие. Часто эти форматы используются вместе, создавая файлы с расширением .tar.gz.
Для создания архива используется утилита tar:
# tar -cvf archive.tar file1.txt file2.txt file2.txt directory/
Параметры, которые используются в команде выше:
- -c – создание нового архива;
- -v – отображение процесса (опционально);
- -f – указывает, что далее будет имя файла архива.
В результате будет создан архив archive.tar, который содержит файлы file1.txt, file2.txt и содержимое каталога directory/.
Чтобы создать архив со сжатием, добавляется параметр -z:
# tar -czvf archive.tar.gz file1.txt file2.txt directory/
-z – сжатие с помощью Gzip.
В результате создается сжатый архив archive.tar.gz, который занимает меньше места, чем обычный .tar.
Обратите внимание! Расширение архива зависит от параметров, использованных в команде tar.
Если мы создаем архив без сжатия (используется только объединение файлов в единый архив) – используется расширение .tar. То есть, архив будет иметь название archive.tar.
Если мы создаем архив со сжатием с помощью Gzip – используется расширение .tar.gz. То есть, архив будет иметь название archive.tar.gz.
Дополнительно можно также рассмотреть различные типы сжатия – .gz, .bz2, .xz и т.д.
Если использовать параметр -a, команда автоматически определит тип сжатия по расширению файла:
# tar -cvfa archive.tar.gz file1.txt
Обратите внимание! Параметр -a в утилите tar используется только при создании архива для автоматического выбора метода сжатия по расширению файла. При распаковке этот параметр не используется.
Параметр -a работает только для форматов сжатия, таких как .gz, .bz2, .xz и т.д.
Утилита tar также позволяет распаковывать как обычные архивы, так и архивы со сжатием. Команда для распаковки файлов из архива .tar:
# tar -xvf archive.tar
Параметры:
- -x – извлечение файлов из архива;
- -v – отображение процесса (опционально);
- -f – указывает, что дальше будет имя архива.
Все файлы и каталоги из архива будут распакованы в текущий каталог.
Распаковка со сжатием
Для распаковки архива со сжатием Gzip (.tar.gz) используется команда:
# tar -xzvf archive.tar.gz
Все файлы будут распакованы, а сжатие автоматически распознается.
Как самому указать каталог, куда распаковывать файлы
По умолчанию файлы распаковываются в текущий каталог. Чтобы указать другой каталог, используйте параметр -C:
# tar -xzvf archive.tar.gz -C /путь/к/директории
-C – указывает, куда распаковать файлы.
Как просмотреть все файлы в архиве
Чтобы просмотреть, какие файлы содержатся в архиве, вы можете использовать команду с параметром -tvf:
# tar -tvf archive.tar.gz
-t – просмотр файлов в архиве без распаковки.
В результате вы увидите список файлов и их структуру в архиве. Если нужно удалить только один файл, используйте:
# tar -xzvf archive.tar.gz specific_file.txt
Как проверить, установлена ли утилита tar
Обратите внимание! Утилита tar обычно установлена по умолчанию в большинстве дистрибутивов Linux, поскольку она является базовым инструментом для работы с архивами и пакетами.
Чтобы проверить, установлен ли tar, выполните команду:
# tar --version
Если утилита установлена, вы увидите версию tar.

Если tar отсутствует, система сообщит следующее: «Command ‘tar’ not found».
Как установить tar, если его нет?
Все зависит от дистрибутива:
- Debian/Ubuntu:
# apt-get install tar -y
- CentOS/RHEL/AlmaLinux/RockyLinux:
# yum install tar -y
- Fedora:
# dnf install tar -y
Итак, благодаря утилите tar вы сможете без проблем создавать, распаковывать и управлять архивами, что позволит значительно облегчить процесс сохранения и обмена большими объемами данных. А правильное использование параметров команд поможет вам сохранить время и избежать ошибок при работе с архивами различных форматов.
3. Работа с архивом .rar в Linux
RAR (от Roshal Archive) – это популярная программа для сжатия файлов, упрощает их хранение и передачу по сети. В большинстве дистрибутивов Linux утилита rar не установлена по умолчанию, поскольку этот формат является собственным и не является частью стандартного пакета. Однако вы можете без проблем ее установить, чтобы создавать и распаковывать архивы в этом формате.
Для CentOS, AlmaLinux, Rocky Linux сначала нужно добавить репозиторий EPEL (Extra Packages for Enterprise Linux), если он еще не добавлен:
# yum install epel-release -y
После этого установите утилиты rar и unrar:
# yum install rar unrar -y
Если эта команда не работает (что иногда бывает из-за ограничений репозиториев), вы можете загрузить rar непосредственно с официального сайта и вручную установить пакет, что будет продемонстрировано позже.
Для Debian, Ubuntu выполните команду для установки:
# apt update && sudo apt install rar unrar
Если пакеты rar недоступны через стандартные репозитории вашего дистрибутива, вы можете загрузить и установить утилиту вручную. Для начала на сервере перейдите во временный каталог, где будет сохранен архив:
# cd /tmp/
Загрузите архив с официального сайта RARLAB, например:
# wget https://www.rarlab.com/rar/rarlinux-x64-710b3.tar.gz
После загрузки распакуйте архив с помощью команды tar:
# tar -xvf rarlinux-x64-710b3.tar.gz
После распаковки архива перейдите в каталог, который содержит утилиты:
# cd /tmp/rar
Выполните копирование утилиты rar и unrar в каталог /usr/bin для того, чтобы утилиты были доступны из любой директории в системе. Таким образом, скопируйте их в стандартный каталог исполняемых файлов:
# cp rar unrar /usr/bin
Теперь вы можете использовать команды rar и unrar для создания и распаковки архивов RAR. Чтобы проверить, успешно ли установлен RAR, выполните одну из команд:
# rar
# unrar
Если утилиты установлены правильно, вы увидите справочную информацию о них или доступные команды. Синтаксис утилит rar и unrar довольно прост и удобен для использования.
Как сделать архив rar
Чтобы создать архив, используется команда rar с параметром a.
# rar a archive.rar file1.txt file2.txt
- a – параметр для добавления файлов в архив;
- archive.rar – имя архива;
- file1.txt, file2.txt – файлы, которые вы хотите добавить в архив.
Обратите внимание! При использовании параметров утилит rar и unrar не нужно добавлять лишние символы, за исключением отдельных случаев.
Как добавить файл в уже созданный архив
Мы также можем использовать параметр a для добавления нового файла в уже существующий архив. Например, добавим файл messeges.txt к нашему файлу archive.rar следующей командой:
# rar a archive.rar messeges.txt
Как распаковать архив в ту же папку
Чтобы распаковать архив в текущем каталоге, воспользуйтесь такой командой с параметром x:
# unrar x archive.rar
Как распаковать архив в другую папку
Чтобы распаковать архив в другую директорию, кроме текущей, нужно в конце указать путь к ней. Например:
# unrar x archive.rar /home/user/
Как посмотреть все файлы в архиве rar
Также, вы можете просмотреть список файлов в архиве без его распаковки:
# unrar l archive.rar
Как удалить файлы из архива rar
Чтобы удалить файлы из архива, используйте команду с параметром d:
# rar d archive.rar file1.txt
d – параметр для удаления файлов из архива.
Как обновить файл в архиве rar
Вы можете обновить файлы в архиве с помощью параметра u:
# rar u archive.rar /путь/к/file1.txt
При обновлении файла в архиве учитывайте следующие детали:
- если архив не содержит file1.txt, он будет добавлен;
- если в архиве уже есть одноименный файл, но его содержимое на диске изменилось, то этот файл будет обновлен до последней версии.
Вы также можете использовать эту команду для обновления нескольких файлов одновременно, например ориентируясь на расширение .txt:
# rar u archive.rar *.txt
В целом, утилиты rar и unrar позволяют эффективно работать с архивами в Linux, хотя и могут требовать более сложных шагов для их установки на сервере.
Обратите внимание! На shared-хостинге в HostPro нет утилиты для работы с архивами RAR. Однако вы можете без проблем работать с архивами формата .zip, .tar и .gz, которые поддерживаются по умолчанию. Если же вы работаете на VPS, где есть полный доступ к системе, можно настроить любые инструменты для работы с различными форматами архивов, в том числе и .rar.
Заключение
Работа с архивами в Linux – навык, который может пригодиться каждому пользователю. В этой статье мы рассмотрели основные команды и инструменты для создания, распаковки и управления различными форматами архивов (.zip, .tar, .gz, .rar) с помощью командной строки. Применяя приведенные примеры, вы сможете легко решать разнообразные задачи, связанные с архивированием данных.
Возможно, вас заинтересует

Лучшие практики защиты Windows SSH сервера
SSH-сервер открывает доступ к удаленному управлению сервером, позволяет администрировать системы и обмениваться данными. Но...
Обновлено: 08.01.2025
|
Как настроить SSH сервер на Windows
SSH (Secure Shell) – это сетевой протокол, который предоставляет безопасный доступ к удаленным системам...
Обновлено: 06.11.2024
|
Как получить доступ по SSH?
SSH (Secure SHell – безопасная оболочка) – это сетевой протокол, используемый для безопасного удаленного...
Обновлено: 04.03.2024
|
Наш телеграм
с важными анонсами, розыгрышами и мемами
Присоединиться