Как архивировать файлы и каталоги в Linux
Как архивировать файлы и каталоги в Linux
How to Zip Files and Directories in Linux
В этом руководстве мы покажем вам, как сжать (сжать) файлы и каталоги в Linux с помощью zip команды.

Zip - это наиболее широко используемый формат архивных файлов, который поддерживает сжатие данных без потерь.
Zip-файл - это контейнер данных, содержащий один или несколько сжатых файлов или каталогов. Сжатые (сжатые) файлы занимают меньше места на диске и могут быть перенесены с одного компьютера на другой быстрее, чем несжатые файлы. Zip-файлы можно легко извлечь в Windows, MacOS и 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 archivename.zip filename1 filename2 filename3
adding: filename1 (deflated 63%)
adding: filename2 (stored 0%)
adding: filename3 (deflated 38%)
По умолчанию zip
команда печатает имена файлов, добавленных в архив, и метод сжатия. Мы объясним методы сжатия и уровень позже в этом руководстве.
При указании имени Zip-архива, если вы опустите .zip
расширение, оно будет добавлено автоматически, если имя архива не содержит точку. zip archivename.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
Чем выше уровень сжатия, тем интенсивнее процесс ЦП, и процесс займет больше времени.
Создание защищенного паролем 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-архив с именем archivename.zip, содержащий все файлы в текущем каталоге.
zip archivename *
То же, что и выше, включая скрытые файлы (файлы, начинающиеся с точки):
zip archivename .* *
Создайте Zip-архив с именем, archivename.zip
содержащим все файлы MP3 в текущем каталоге, без сжатия файлов.
zip -0 archivename *.mp3
Вывод
В Linux вы можете создавать Zip-архивы с zip
команды.
Чтобы извлечь ZIP-архив в системе Linux, вы можете использовать команду unzip .
Если вы хотите узнать больше о Zip, посетите страницу Zip Man .