Как архивировать файлы и каталоги в Linux

12 set 2022 3 min di lettura
Как архивировать файлы и каталоги в Linux
Indice dei contenuti

Введение

Zip — это наиболее часто используемый формат файлов архивов, который поддерживает сжатие данных без потерь.

Zip-файл — это контейнер данных, содержащий один или несколько сжатых файлов или каталогов. Сжатые (заархивированные) файлы занимают меньше места на диске и могут быть перенесены с одной машины на другую быстрее, чем несжатые файлы. Zip-файлы можно легко извлечь в Windows, macOS и Linux с помощью утилит, доступных для всех операционных систем.

В этом уроке мы покажем вам, как архивировать файлы и каталоги в Linux с помощью команды zip.

Заархивировать команду

zip — это утилита командной строки, которая помогает создавать Zip-архивы.

Команда zip имеет следующий синтаксис:

zip OPTIONS ARCHIVE_NAME FILES

Чтобы создать Zip-архив в определенном каталоге, пользователь должен иметь права на запись в этот каталог.

Zip-файлы не поддерживают информацию о свойствах в стиле Linux. Извлеченные файлы принадлежат пользователю, выполняющему команду.

Чтобы сохранить владельца и права доступа к файлу, используйте команду tar.

Утилита zip не установлена ​​по умолчанию в большинстве дистрибутивов Linux, но вы можете легко установить ее с помощью диспетчера пакетов вашего дистрибутива.

Установите Zip на Ubuntu и Debian

sudo apt install zip

Установите Zip на CentOS и Fedora

sudo yum install zip

Как сжать (ZIP) файлы и каталоги

Чтобы сжать один или несколько файлов, укажите файлы, которые вы хотите добавить в архив, через пробел, как показано ниже:

zip archivename.zip filename1 filename2 filename3
adding: filename1 (deflated 63%)
 adding: filename2 (stored 0%)
 adding: filename3 (deflated 38%)

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

При указании имени Zip-архива, если вы не укажете расширение .zip, оно будет добавлено автоматически, если только имя архива не содержит точку ..

Чтобы скрыть вывод команды zip, используйте параметр -q:

zip -q archivename.zip filename1 filename2 filename3

Часто вы будете создавать Zip-архив каталога, который включает содержимое подкаталогов. Опция -r позволяет вам рекурсивно проходить всю структуру каталогов.

Чтобы создать Zip-архив каталога, вам нужно будет использовать:

zip -r archivename.zip directory_name

Вы также можете добавить несколько файлов и каталогов в один и тот же архив:

zip -r archivename.zip directory_name1 directory_name2 file1 file1

Методы и уровни сжатия

Метод сжатия Zip по умолчанию — deflate. Если утилита zip определяет, что файл не может быть сжат, она просто сохраняет файл в архиве, не сжимая его с помощью метода сохранения. В большинстве дистрибутивов Linux утилита zip также поддерживает метод сжатия bzip2.

Чтобы указать метод сжатия, используйте параметр -Z.

zip -r -Z bzip2 archivename.zip directory_name
...
 adding: sub_dir/(stored 0%)
 adding: sub_dir/file1 (bzipped 52%)
 adding: sub_dir/file2 (bzipped 79%)

Команда zip позволяет указать уровень сжатия, используя число с дефисом в диапазоне от 0 до 9. Уровень сжатия по умолчанию равен -6. При использовании -0 все файлы будут заархивированы без сжатия. -9 заставит команду zip использовать оптимальное сжатие для всех файлов.

Например, чтобы использовать уровень сжатия -9, введите что-то вроде этого:

zip -9 -r archivename.zip directory_name

Чем выше уровень сжатия, тем интенсивнее процесс ZIP процессора, и он займет больше времени.

Создайте защищенный паролем ZIP-файл

Если у вас есть конфиденциальная информация, которую необходимо хранить в репозитории, вы можете зашифровать ее с помощью параметра -e:

zip -e archivename.zip directory_name

Вам будет предложено ввести и подтвердить пароль архива:

Enter password:
 Verify password:

Создайте разделенный zip-файл

Представьте, что вы хотите заархивировать Zip-архив на файлообменнике с ограничением на загрузку файла в 1 ГБ, а размер Zip-архива составляет 5 ГБ.

Вы можете создать новый разделенный Zip-файл, используя параметр -s, за которым следует указанный размер. Множитель может быть k (килобайт), m (мегабайт), g (гигабайт) или t (терабайт).

zip -s 1g -r archivename.zip directory_name

Приведенная выше команда будет продолжать создавать новые архивы в наборе после достижения указанного предела размера.

archivename.zip
 archivename.z01
 archivename.z02
 archivename.z03
 archivename.z04

ZIP-примеры

Создайте Zip-архив с именем имя_архива.zip, содержащий все файлы в текущем каталоге:

zip archivename *

Как указано выше, включая скрытые файлы (файлы, начинающиеся с точки):

zip archivename.* *

Создайте Zip-архив с именем archivename.zip, содержащий все файлы MP3 в текущем каталоге без сжатия файлов.

zip -0 archivename *.mp3

Вывод

В Linux можно создавать Zip-архивы с помощью команды zip. Чтобы распаковать ZIP-архив в системе Linux, вы можете использовать команду unzip.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.