Zip - популярная кроссплатформенная команда, используемая для сжатия и архивирования данных. Сжатие экономит место за счет уменьшения размера данных, в то время как архивирование упрощает передачу данных за счет объединения нескольких файлов или каталогов в один файл. Представьте, если нам нужно передать через Интернет 5 файлов, каждый размером 50 мегабайт; передача всех файлов по одному может занять много времени. Сжатие файлов для уменьшения размера до 25 МБ и последующее архивирование всех их в одном файле значительно ускорит передачу файлов, чем в несжатом виде. Zip - это наиболее широко используемая утилита для архивирования и сжатия файлов, в то время как unzip используется для извлечения и распаковки заархивированных файлов.
В этой статье мы рассмотрим команды zip и unzip в Linux, а также их параметры командной строки и примеры.
Предпосылки
- Система Ubuntu или Debian
- Установлены утилиты zip и unzip
Примечание: Команды, упомянутые в этой статье, были протестированы на Ubuntu 20.04 LTS (фокальная ямка). Те же команды применимы и к дистрибутиву Debian.
Установка Zip и разархивирования
По умолчанию в системах Ubuntu установлены пакеты zip и unzip. Если они отсутствуют в вашей системе, вы можете легко их установить. Запустите Терминал с помощью клавиатуры Ctrl + Alt + T. Затем, чтобы установить zip, введите в Терминале следующее:
$ sudo apt install zipЧтобы установить распаковку, введите в Терминале следующую команду:
$ sudo apt install распаковатьЕсть несколько сценариев, в которых вам может потребоваться заархивировать файлы:
- Для экономии места на диске, так как при сжатии размер файла сжимается
- Передача больших файлов по электронной почте
- Выгрузка или скачивание файлов на более высокой скорости
- Для экономии трафика
Команда ZIP в Linux
Чтобы создать zip-файл, вам нужно будет указать имя заархивированного архива и файлы, которые необходимо включить в zip-архив.
$ zip options zip_file file1 file2…Заархивировать один файл
Чтобы заархивировать один файл с именем тестовый файл.текст; в zip-файл с именем контрольная работа.застегивать, команда будет такой:
$ zip test.zip testfile.текст
Приведенная выше команда сжимает указанный файл в текущем каталоге, оставляя исходный файл позади.
Чтобы убедиться, что zip-файл был создан, введите команду в Терминале ниже:
$ ls -l
Заархивировать несколько файлов
Вы также можете заархивировать несколько файлов с помощью команды zip. Создадим несколько файлов с именем testfile1.текст, testfile2.текст, testfile3.текст, а также testfile4.текст используя следующую команду в Терминале:
$ sudo touch testfile1.txt testfile2.txt testfile3.txt testfile4.текстТеперь, чтобы заархивировать эти файлы в один файл с именем файлы.застегивать, введите следующую команду в Терминале:
$ zip файлы.zip testfile1.txt testfile2.txt testfile3.txt testfile4.текст
Вы также можете использовать подстановочный знак, чтобы указать несколько файлов с одинаковым расширением. Например, чтобы заархивировать все файлы, заканчивающиеся на .txt в zip-файле с именем files1.zip, введите в Терминале следующую команду:
$ zip files1.zip *.текст
Заархивируйте файл в другой каталог
Если вам нужно заархивировать файл в какой-либо каталог, отличный от текущего, используйте следующий синтаксис:
$ zip / путь / к / каталогу.zip_file имя файлаНапример, застегнуть тестовый файл.текст файл в каталог Documents / docs / с именем контрольная работа.застегивать, команда будет такой:
$ zip Documents / docs / test.zip testfile.текст
Добавить файл в существующий zip-архив
Вы также можете добавить файл в уже существующий zip-файл. Для этого используйте следующий синтаксис:
$ zip -u zip_file имя_файлаДопустим, у вас есть zip-файл (files1.застегивать), И вы хотите включить еще один файл (testfile4.текст) В этом случае команда будет выглядеть так:
$ zip -u файлы1.zip testfile4.текст
Удалить файл из ZIP-файла
Точно так же вы также можете удалить файл из уже существующего zip-файла. Для этого используйте следующий синтаксис:
$ zip -d zip_file имя_файлаДопустим, у вас есть zip-файл (files1.застегивать), И вы хотите удалить файл (testfile1.текст), Команда в этом случае будет такой:
$ zip -d файлы1.zip testfile1.текст
Архивировать файлы в тихом режиме
Если вы не хотите отображать вывод команды zip, используйте параметр -q (quiet) с командой zip следующим образом:
$ zip -q zip_file имя_файлаНапример, при архивировании тестового файла.txt, вы можете подавить вывод с помощью следующей команды:
$ zip -q тест.zip testfile.текстНа следующем снимке экрана вы можете увидеть выходные данные команды zip, которые не отображались в Терминале.
Удаление исходных файлов после архивирования
По умолчанию zip сохраняет исходный файл вместе со сжатым файлом. Однако с помощью -м с помощью команды zip, вы можете удалить исходные файлы после создания их заархивированного файла.
$ zip -m zip_file имя_файлаНапример, следующая команда удалит тестовый файл.текст после создания заархивированного файла, контрольная работа.застегивать.
$ zip -m тест.zip testfile.текст
Почтовые каталоги
Чтобы заархивировать каталоги в вашей системе Linux, используйте -р (рекурсивный) вариант с помощью команды zip. В -р опция рекурсивно заархивирует каталоги, я.е., включая содержимое подкаталогов.
$ zip -r имя_директора zip_fileНапример, чтобы застегнуть Документы каталог рекурсивно в контрольная работа.застегивать файл, команда будет выглядеть так:
$ zip -r тест.zip Документы /Эта команда заархивирует каталог Documents вместе со всеми подкаталогами и файлами, включенными в него.
Установка уровня сжатия
Вы также можете установить уровень сжатия, который будет применяться к архивируемым файлам. Уровень сжатия варьируется от 0 до 9, где 6 - значение по умолчанию, 0 - самое низкое значение, а 9 - самое высокое значение сжатия.
Например, чтобы заархивировать все текстовые файлы в files1.застегивать используя максимальное значение сжатия, команда будет выглядеть так:
$ zip -9 файлов1.zip *.текст
Аналогичным образом, чтобы заархивировать все текстовые файлы в файлы2.застегивать с использованием самого низкого значения сжатия -0, команда будет такой:
Ниже приводится результат работы ls команда после создания zip-файлов. Если мы сравним размеры обоих zip-файлов, вы увидите files1.zip, сжатый с использованием уровня сжатия 9, имеет меньший размер по сравнению с файлами2.zip, сжатый с использованием уровня сжатия 0.
Создайте защищенный паролем zip-файл
Вы также можете создавать zip-файлы, защищенные паролем, с помощью -е вариант с помощью команды zip следующим образом:
$ zip -e zip_file имя_файлаНапример, следующая команда заархивирует все текстовые файлы в файлы3.застегивать, затем спросите пароль. Установите любой пароль и нажмите Enter. Затем проверьте этот пароль, повторно набрав его и нажав Enter.
$ zip -e файлы3.zip *.текст
Добавление паролей к zip-файлам с помощью zipcloak
В предыдущем примере мы создали zip-файл, защищенный паролем. Но что делать, если вы создали zip-файл и забыли установить пароль. С помощью команды zipcloak вы можете установить пароль для zip-файла в любое время.
$ zipcloak zip_fileНапример, чтобы установить пароль для уже созданного zip-файла с именем файлы.застегивать, команда будет такой:
файлы $ zipcloak.застегиватьВам будет предложено ввести пароль. Введите любой пароль и нажмите Входить. Затем подтвердите этот пароль, набрав его еще раз и нажав Входить.
Просмотр сведений о файле с помощью команды zipdetails
Команда Zipdetails показывает подробную информацию о заархивированном файле. Информация, которую он отображает, касается структуры записи, а не сжатых данных. Чтобы найти подробную информацию о заархивированном файле, введите zipdetails, а затем имя заархивированного файла, как показано ниже:
$ zipdetails zip_fileНапример, чтобы найти подробную информацию о заархивированном файле, контрольная работа.застегивать, команда будет такой:
$ zipdetails test.застегиватьНа выходе вы увидите много информации о вашем заархивированном файле.
Найдите внутри файла с помощью команды zipgrep
Команда zipgrep позволяет нам искать заданный текст в файлах внутри заархивированного файла, не извлекая его. Если zip-файл защищен паролем, вам нужно сначала ввести для него пароль. Для поиска текста внутри zip-файла используйте следующий синтаксис:
$ zipgrep выражение zip_fileНапример, для поиска файлов внутри zip-файла контрольная работа.застегивать содержит слово шлюз, команда будет такой:
Тест шлюза $ zipgrep.застегиватьРезультат выглядит следующим образом. Вы можете увидеть два файла iplist.текст а также iplist внутри контрольная работа.застегивать содержит слово шлюз.
Чтобы найти текст из определенного файла внутри zip-файла, вы также можете добавить его:
Например, следующая команда будет искать слово шлюз только из определенного файла iplist внутри zip файла контрольная работа.застегивать:
Тест шлюза $ zipgrep.zip Document / docs / iplist
Просмотр информации с помощью команды zipinfo
Команда zipinfo в Linux выводит список файлов, содержащихся в zip-файле, вместе с их разрешениями, типом сжатия, исходным размером, датой и отметкой времени. Чтобы просмотреть информацию о конкретном zip-файле, введите zipinfo, а затем имя файла, как показано ниже:
$ zipinfo имя файлаСледующая команда отобразит информацию о zip-файле files1.застегивать:
$ zipinfo files1.застегивать
Разделите файл с помощью команды zipsplit
Иногда размер zip-файла слишком велик, и вы не можете загрузить его или отправить как вложение из-за ограничений по размеру. С помощью команды zipsplit вы можете разделить zip-файлы на файлы меньшего размера, которые легче перенести. Чтобы разделить zip-файл на файлы меньшего размера, размером не более
В
Например, приведенная ниже команда разделит контрольная работа.застегивать на файлы меньшего размера размером не более 104857600 байт (104 МБ).
$ zipsplit -n 104857600 тест.застегиватьВот результат выполнения вышеуказанной команды. В контрольная работа.застегивать файл разбит на три файла, которые последовательно называются test1.застегивать, test2.застегивать, а также test3.застегивать, соответственно.
Если вы запустите ls вы увидите все три разделенных zip-файла вместе с исходным zip-файлом.
Добавляйте или просматривайте комментарии в zip-файле с zipnote
С помощью команды zipnote вы можете добавлять, просматривать и редактировать комментарии в вашем zip-файле. Для просмотра комментариев используйте следующую команду:
$ zipnote zip_fileЗаменить застегивать файл с вашим фактическим именем zip-файла.
Если комментариев нет, вы увидите следующее представление по умолчанию:
Чтобы добавить комментарии, сначала вам нужно перенаправить вывод почтовый индекс к файлу комментариев. Для этого используйте следующую команду:
Например, чтобы добавить комментарии к files1.застегивать, команда будет такой:
$ zipnote files1.zip> комментарииТеперь отредактируйте Комментарии файл, используя следующую команду:
$ sudo nano комментарииДля каждого файла добавьте свои комментарии над строками, в которых говорится @ (комментарий над этой строкой),затем сохраните и выйдите из файла. Мы добавили два комментария в файл комментариев, как показано на скриншоте ниже.
Теперь напишите комментарии к вашему zip-файлу с помощью следующей команды:
В нашем случае команда будет:
$ zipnote -w files1.застегивать < commentsТеперь вы можете проверить, были ли добавлены комментарии, выполнив следующую команду в Терминале:
$ zipnote zip_file
Просмотр справки
Чтобы просмотреть справку по команде zip, используйте следующую команду:
$ zip --helpВы также можете посетить справочную страницу утилиты zip, используя следующую команду:
$ man zipКоманда распаковки в Linux
С помощью команды unzip вы можете легко извлечь содержимое из zip-файла. Чтобы распаковать файл, используйте следующий синтаксис:
Параметры $ unzip zip_fileРазархивируйте отдельные zip-файлы
Чтобы распаковать один zip-файл, скажем, test.zip команда будет выглядеть так:
$ unzip test.застегиватьОн распакует файл в текущем каталоге.
Разархивируйте файл в другой каталог
Вы также можете распаковать файл в другой каталог, а не в текущий каталог, используя параметр -d следующим образом:
$ unzip zip_file -d / путь / к / каталогуЧтобы распаковать zip-файл, контрольная работа.застегивать к Документы, каталог, команда будет выглядеть так:
$ unzip test.zip -d Документы /
Распаковать несколько файлов
Учтите, что в текущем каталоге есть несколько zip-файлов, которые вы хотите распаковать. Вы можете распаковать их все с помощью одной команды:
$ unzip '*.zip 'Эта команда распакует все zip-файлы, находящиеся в вашем текущем каталоге.
Подавить вывод при использовании распаковки
Подобно команде zip, вы также можете скрыть вывод команды unzip, используя -q вариант следующим образом:
$ unzip -q zip_file
Исключить файлы с помощью unzip
Если вы хотите распаковать zip-файл, но не хотите извлекать конкретный файл, используйте -Икс вариант ниже:
$ unzip zip_file -x имя_файлаНапример, у нас есть застежка-молния filetest.застегивать содержащий три файла внутри него. Следующая команда распакует все файлы, кроме одного файла отчет.текст:
$ unzip test.zip -x отчет.текст
Распаковать zip-файлы, защищенные паролем
Чтобы распаковать защищенный паролем zip-файл без запроса, используйте -п вариант, за которым следует пароль для файла:
$ распаковать -PНапример, у нас есть zip-файл, контрольная работа.застегивать, который защищен паролем «банка”. Чтобы извлечь этот файл, используйте следующую команду:
$ unzip -P оловянный тест.застегивать
Перезапись zip-файлов
Если вы распаковываете файл в место, где уже существовали извлеченные файлы, вам будет предложено: перезаписать текущий файл, пропустить разархивирование текущего файла, перезаписать все файлы, пропустить разархивирование всех файлов или переименовать файл.
Чтобы перезаписать все существующие файлы без запроса, используйте -о вариант следующим образом:
Перечислить содержимое zip-архива
С помощью -л с помощью команды unzip, вы можете перечислить содержимое zip-файла, не распаковывая его.
$ unzip -l zip_fileПример:
$ unzip -l тест.застегиватьНиже приведен вывод вышеуказанной команды, в которой перечислены файлы, содержащиеся в zip-файле контрольная работа.застегивать, вместе с их именами, исходным размером файла, датой и отметками времени.
Просмотр подробной информации
Чтобы просмотреть подробную информацию без извлечения zip-файла, используйте параметр -v следующим образом:
$ unzip -v zip_fileПример:
$ unzip -v тест.застегиватьНиже приведен вывод вышеуказанной команды, в которой перечислены файлы, содержащиеся в контрольная работа.застегивать, вместе с их именами, исходным размером файла, размером сжатого файла, методом сжатия, степенью сжатия, датой и отметками времени.
Проверка на ошибки в архиве
С помощью опции -t в команде unzip вы можете проверить, является ли zip-файл действительным и не содержит ли ошибок.
$ unzip -t test1.застегиватьПример:
$ unzip -t test1.застегиватьПриведенная выше команда проверяет наличие ошибок в test1.застегивать файл и отображает результаты. Следующий вывод показывает, что в сжатом файле нет ошибок.
Просмотр справки
Чтобы просмотреть справку по команде unzip, используйте следующую команду:
$ unzip --helpВы также можете посетить справочную страницу утилиты unzip, используя следующую команду:
$ человек распаковатьЗаключение
Это все, что вам нужно знать, чтобы освоить команды zip и unzip в Linux. В этой статье мы подробно обсудили использование команд zip и unzip в Linux, а также различные параметры командной строки и примеры.