ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Пятница, 13 декабря, 2024

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

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

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

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

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

 

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

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

zip OPTIONS ARCHIVE_NAME FILES

 

Чтобы создать ZIP-архив в определенном каталоге, пользователь должен иметь права на запись в этот каталог. ZIP-файлы не поддерживают информацию о владельце в стиле Linux, и все извлеченные файлы будут принадлежать пользователю, который запускает команду. Если вы хотите сохранить владение файлом и разрешения, используйте команду tar.

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

 

sudo apt install zip

 

sudo yum install zip

 

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

zip archivename.zip filename1 filename2 filename3

 

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

 

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

При указании имени zip-архива, если вы опустите расширение .zip, оно будет добавлено автоматически, если имя архива не содержит точку. zip archive name.zip filename создаст архив с тем же именем, что и zip archivename filename.

Если вы хотите подавить вывод команды 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 определяет, что файл не может быть сжат, она просто сохраняет файл в архиве, не сжимая его, используя метод store. В большинстве дистрибутивов 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

 

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

 

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

zip -e  archivename.zip directory_name

 

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

Enter password:
Verify password:

 

Представьте, что вы хотите хранить 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-архив с именем archivename.zip, содержащий все файлы в текущем каталоге.

zip archivename *

 

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

zip archivename .* *

 

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

zip -0 archivename *.mp3

 

Из этой статьи вы узнали, как создавать ZIP-архивы с помощью команды zip. Мы также показали вам наиболее распространенные опции команды zip. Чтобы извлечь ZIP-архив в системе Linux, вы можете использовать команду unzip.

Если вы хотите узнать больше о Zip, посетите страницу Zip Man.

Exit mobile version