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

Zip-файлы и каталоги в Linux

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

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

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

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 archivename.zip filename создаст архив с тем же именем, что и zip archivename filename .

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

 zip -q archivename.zip filename1 filename2 filename3

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

 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 .

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

почтовый терминал

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *