- Как заархивировать файлы и каталоги в Linux
- zip Команда
- Установите Zip в Ubuntu и Debian
- Установите Zip на CentOS и Fedora
- Как архивировать файлы и каталоги
- Методы и уровни сжатия
- Создание ZIP-файла, защищенного паролем
- Создание разделенного Zip-файла
- Примеры ZIP
- Выводы
- Как разделить zip-архив на несколько блоков определенного размера
- Разделить zip-архивы на несколько блоков
- Открытые разделенные zip-архивы
- Заключительные мысли
- Основы навигации по файловой системе Linux
- Как получить доступ к страницам руководства для команд Linux
- Mint 20: лучше, чем Ubuntu и Microsoft Windows?
- Как разделить zip-архив на части при создании [Linux]
Как заархивировать файлы и каталоги в 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
Установите Zip на CentOS и Fedora
Как архивировать файлы и каталоги
Чтобы заархивировать один или несколько файлов, укажите файлы, которые вы хотите добавить в архив, через пробел, как показано ниже:
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 содержащий все файлы MP3 в текущем каталоге, без сжатия файлов.
Выводы
В Linux вы можете создавать Zip-архивы с помощью команды zip .
Чтобы распаковать ZIP-архив в системе Linux, вы можете использовать команду unzip .
Если вы хотите узнать больше о Zip, посетите страницу Zip Man .
Как разделить zip-архив на несколько блоков определенного размера
При сжатии больших файлов на Система Linux , может быть удобно разделить их на несколько блоков определенного размера. Это особенно верно для сжатия большого архива на несколько дисков или загрузки большого архива в онлайн по частям.
Linux делает это возможным с деготь файлы, как мы видели в нашем разделить tar-архив на несколько блоков руководство, но вы также можете сделать это с помощью zip-файлов.
В этом руководстве мы увидим пошаговые инструкции по созданию zip-архива, разделенного на несколько блоков. Мы также рассмотрим процесс распаковки разделенного архива.
В этом уроке вы узнаете:
Объединение файлов в разделенный zip-архив
Категория | Требования, условные обозначения или используемая версия программного обеспечения |
---|---|
Система | Любой Дистрибутив Linux |
Программного обеспечения | zip, unzip |
Другой | Привилегированный доступ к вашей системе Linux с правами root или через судо команда. |
Разделить zip-архивы на несколько блоков
Чтобы разделить zip-архивы на несколько файлов, мы будем использовать -s (splitsize) вариант застегивать команда. Перед использованием утилиты zip необходимо убедиться, что она установлена в вашей системе. Вы можете ознакомиться с нашим руководством на как использовать zip в Linux за помощь с этим.
Давайте посмотрим на пример. Эта команда разделит сжатый zip-архив на блоки по 5 МБ:
$ zip -r -s 5m myfiles.zip example-dir /
Объединение файлов в разделенный zip-архив
В нашем примере мы разбиваем три больших текстовых файла на zip-архивы размером 5 МБ. Как видите, файлы имеют такие имена, как:
$ ls myfiles * myfiles.z01 myfiles.z02 myfiles.z03 myfiles.z04 myfiles.z05 myfiles.zip.
В нашей команде -р вариант для рекурсии, который нам нужен для архивирование каталога . В -s Опция, как уже говорилось, разбивает zip-архив на файлы заданного размера. В нашем случае мы использовали 5 мегабайт, но вы можете заменить любое число на свое усмотрение.
Открытые разделенные zip-архивы
Чтобы открыть созданный разделенный zip-архив, нам нужно использовать распаковать полезность. Если он еще не установлен в вашей системе, вы можете ознакомиться с нашим руководством на как распаковать zip файл для помощи.
Во-первых, используйте застегивать команда для объединения разделенных zip-файлов в один zip-архив. В приведенном ниже примере мы объединяем myfiles.zip архивы в single-archive.zip .
$ zip -F myfiles.zip --out single-archive.zip.
Объединение разделенных zip-архивов в один zip-файл
Теперь мы можем использовать распаковать открыть наш объединенный архив.
Заключительные мысли
В этом руководстве мы увидели, как создавать zip-архивы в Linux и разбивать их на несколько блоков определенного размера. В застегивать Команда в Linux достаточно надежна, чтобы включать эту опцию, поэтому разделение архивов и их последующее объединение становится очень простым, если вы знаете, какие опции использовать.
Подпишитесь на новостную рассылку Linux Career Newsletter, чтобы получать последние новости, вакансии, советы по карьере и рекомендуемые руководства по настройке.
LinuxConfig ищет технических писателей, специализирующихся на технологиях GNU / Linux и FLOSS. В ваших статьях будут представлены различные руководства по настройке GNU / Linux и технологии FLOSS, используемые в сочетании с операционной системой GNU / Linux.
Ожидается, что при написании статей вы сможете идти в ногу с технологическим прогрессом в вышеупомянутой технической области. Вы будете работать самостоятельно и сможете выпускать как минимум 2 технических статьи в месяц.
Основы навигации по файловой системе Linux
В этой статье объясняются основные команды для навигации в файловой системе Linux. На диаграмме ниже представлена (часть) файловой системы Linux, известной как Стандарт иерархии файловой системы. Линия от одного узла к узлу справа указывает на в.
Как получить доступ к страницам руководства для команд Linux
Обычно при написании команды — как простой, так и сложной — захочется получить доступ к более подробной информации о команде и ее доступных параметрах. На страницах справочника Linux имеется обширная информация, которая предоставляется бесплатно и.
Mint 20: лучше, чем Ubuntu и Microsoft Windows?
Как давний пользователь Microsoft Windows, Fedora, Ubuntu и Linux Mint, я видел некоторые из наиболее запутанных истерик, которые может вызвать операционная система Windows или Linux. Моя первая установка Mint 20 была в начале апреля 2020 года, ещ.
Как разделить zip-архив на части при создании [Linux]
Есть большие папки (заведомо больше 2Гб, что является пределом для размера зип-архива по спецификации). Нужно их заархивировать, причем, создав многотомный архив (размеры частей по 500МБ, например).
Весь man zip перечитал — ничего похожего не увидел. zipsplit разбивает на части уже готовый архив (но я не смогу создать его >2ГБ, чтобы потом разбить).
Другие форматы архивов не подходят по многим причинам.
Есть выход из этой проблемы?
Если важно, debian lenny.
Спасибо.
Пишу примерно следующее (1 — это папка, в которой лежат нужные для архивирования файлы)
tar -v -c -M —tape-length=512000 —file=archive-part1.tar 1/
В таком случае он создает архив archive-part1.tar просит вставить следующий том и ввести имя. Как-то можно его попросить делать это автоматически и сгенерить имя вроде archive-part2.tar? Скрипт этот по крону будет запускаться, нужно его автоматизировать.
Попробуйте 7-zip (пакет p7zip, там есть опция -vXXm как раз разбиение на многотомник, но только для своего формата 7z(!), в zip эта фича не поддерживается, недоделан он там).
Из плюсов очень богатый функционал и многоплатформенность, так что может быть подойдет, см. man 7zr
Не, 7zip не подходит по двум причинам — во-первых, очень медленный, по сравнению с зипом ( zenux.ru/media/other/Сравнение_архиваторов_Linux__26-03-2010-14-13-22.gif ) — у меня именно медиа-файлы. Во-вторых, требует софта на клиенте, а зип открывается на всех чистых клиентских системах (winXP+, linux, macos). Плюс, в зипе платформонезависимая кодировка имен файлов
Согласен, но без конкретики сложно что-то подсказать. Возможно, для медиа-файлов лучше включить режим «без сжатия» (не знаю типа файлов у вас, но обычно они неохотно ужимаются и проще порезать на части в архиве чем тратить время и цпу на сжатие) и результат теста будет немного иной?
Другой вариант если файлы достаточно мелкие, набирать объем списком из Н-файлов (например, 100 файлов по 45 мб), но это придется повозиться с реализацией в шелл-скрипте, опять же при условии что размер 1-го файла не превысит лимит в 2 гига.
Да, я и так ставлю степень сжатия 0, мне не сжатие нужно, а чтобы клиент мог скачать все файлы одним архивом. Впрочем, тут проблема больше в клиентском софте — не хочется навязывать ставить еще специфический архиватор.