🗜️ Работа с ZIP архивами в Linux

ZIP — один из самых популярных форматов архивов. Он используется для сжатия файлов и каталогов, помогает экономить место и сетевой трафик. Несмотря на то, что tar чаще применяется в Linux, zip и unzip остаются востребованными инструментами.


zip --version
sudo apt install zip unzip

zip <опции> <имя архива>.zip <файлы>

Пример:

zip archive.zip file1.txt file2.txt

Без указания опций создается новый архив с заданными файлами.


Опция Назначение
-u, –update Обновить существующие файлы и добавить новые
-f, –freshen Обновить существующие, не добавляя новые
-d, –delete Удалить файлы из архива
-U, –copy-entries Копировать файлы в новый архив
-e, –encrypt Защитить архив паролем
-i <файл>, –include Включить только указанные файлы
-x <файл>, –exclude Исключить указанные файлы
-R, –recurse-patterns Архивировать рекурсивно
-sf, –show-files Показать содержимое архива и выйти
-0 до -9 Уровень сжатия (0 — без сжатия, 9 — максимальный)

1. Создание файлов:

touch file{1..5}.txt

2. Архивация:

zip files.zip file1.txt file2.txt file3.txt file4.txt file5.txt

zip -sf files.zip

zip archive.zip *.txt

Добавит в архив все `.txt` файлы из текущего каталога.


zip -r archive.zip /path/to/directory

1. Просмотр содержимого:

zip -sf archive.zip

2. Удаление:

zip -d archive.zip file5.txt

zip -e secret.zip file1.txt file2.txt

В процессе выполнения команда запросит пароль.


zip -9 archive.zip *.txt   // максимальное сжатие  
zip -1 archive.zip *.txt   // быстрое сжатие

1. Откройте файловый менеджер (`Files`). 2. Выделите нужные файлы. 3. Правый клик → Сжать → выберите формат `.zip`. 4. Укажите имя архива и нажмите Создать.


Для распаковки .zip файлов в Linux используйте утилиту `unzip`.

  • Распаковать архив в текущую директорию:
unzip file.zip
  • Распаковать архив в указанную директорию:
unzip file.zip -d /path/to/destination
  • Просмотреть содержимое архива, не распаковывая его:
unzip -l file.zip
  • Если архив защищен паролем, используйте опцию -P:
unzip -P yourpassword file.zip

Если утилита `unzip` не установлена, установите ее с помощью одной из команд в зависимости от используемой системы:

  • Для Debian/Ubuntu:
    sudo apt-get install unzip
  • Для CentOS/RHEL:
    sudo yum install unzip
  • Для Arch Linux:
    sudo pacman -S unzip