zip и unzip

Последнее обновление: 12.03.2024

zip используется для сжатия и архивирования файлов, а unzip — для извлечения и распаковки файлов из ZIP-архивов.

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

zip [OPTIONS] ARCHIVE FILES

Через параметр ARCHIVE команда принимает имя архива, в который надо добавить файлы. После этого параметру FILES передается набор архивируемых файлов/каталогов. Например:

eugene@Eugene:~$ zip myfiles.zip book.pdf image.png
  adding: book.pdf (deflated 10%)
  adding: image.png (deflated 8%)

Здесь файлы book.pdf и image.png из домашнего каталога помещаются в архив myfiles.zip

Также можно задать дополнительные параметры сжатия. Отмечу некоторые:

  • -r: рекурсивно архивирует содержимое папок

  • -d: удаляет записи из архива

  • -u: обновляет в архиве файлы, если архивируемые файлы ранее были изменены, или добавляет новые файлы, если их нет архиве

  • -1: быстрое сжатие

  • -9: оптимальное сжатие

Например, архивируем папку "test" в архив "test.zip":

zip -r test.zip test

Команда unzip, наоборот, позволяет распаковать архив и в общем случае имеет следующий формат:

unzip [OPTIONS] ARCHIVE

Она распакует архив ARCHIVE. Также можно задать дополнительные параметры сжатия. Отмечу некоторые:

  • -l: выводит список компонентов архива

  • -f: при распаковке всегда обновляет уже существующие одноименные файлы

  • -n: при распаковке никогда не перезаписывает уже существующие одноименные файлы

  • -d: устанавливает папку для распаковки

Например, выведем список элементов архива:

eugene@Eugene:~$ unzip -l myfiles.zip
Archive:  myfiles.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
 11773659  2023-12-01 01:16   book.pdf
   177489  2024-02-26 09:49   image.png
---------                     -------
 11951148                     2 files
eugene@Eugene:~$ 

Распакуем архив в текущую папку:

eugene@Eugene:~$ unzip myfiles.zip
Archive:  myfiles.zip
  inflating: book.pdf                
replace image.png? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
  inflating: image.png               
eugene@Eugene:~$ 

В моем случае распаковывается архив myfiles.zip. И если в текущей папке уже есть одноименные файлы/каталоги, то команда попросит подтвердить одно из действий: перезаписать, не перезаписывать, переименовать. Чтобы сразу установить нужное действие, можно указать флаг -f (перезапись) или -n (отсутствие перезаписи).

Опция -d позволяет указать каталог, в который распаковывается архив. Причем, если каталог не существует, то он автоматически создается:

eugene@Eugene:~$ unzip -d myfiles  myfiles.zip
Archive:  myfiles.zip
  inflating: myfiles/book.pdf        
  inflating: myfiles/image.png       
eugene@Eugene:~$ 

В данном случае распаковка идет в папку myfiles.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850