ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Практические примеры использования команды Unzip в Linux

Если у вас есть сжатый файл, вы можете разархивировать его в командной строке Linux. Команда unzip в Linux довольно универсальна, и вы можете использовать ее намного больше, чем просто распаковка zip-файла.

Мы обсуждали, как сжать папку в Linux в прошлых статьях. Пришло время увидеть различные варианты использования команды unzip. Перед тем, как сделать это, убедитесь, что в вашей системе установлен unzip. Вы можете использовать менеджер пакетов вашего дистрибутива для установки команды.

В Ubuntu и Debian вы можете использовать эту команду:

sudo apt install unzip

 

После того, как вы убедились в этом, давайте посмотрим, как использовать unzip в терминале Linux.

 

Распакуйте команду в Linux

Команда unzip имеет очень простой синтаксис:

unzip [option] zip_file

 

Если вы используете его для распаковки zip-файла без какой-либо опции, он извлечет все файлы в текущем каталоге:

unzip prontolingua.zip 
Archive:  prontolingua.zip
  inflating: 339252-PAJF05-394.ai    
  inflating: 339252-PAJF07-322.eps   
  inflating: 339252-PALBTI-224.ai    
  inflating: 339252-PALBTL-394.eps   
  inflating: 339252-PALBTM-53.jpg    
  inflating: Cacio e pepe.txt        
  inflating: Isola Capri.txt

 

Мы думаем что это не то, что вы хотели бы. Эта команда без параметров просто заполнит ваш текущий каталог всеми извлеченными файлами.

ls
 339252-PAJF05-394.ai    339252-PALBTI-224.ai    339252-PALBTM-53.jpg  'Isola Capri.txt'
 339252-PAJF07-322.eps   339252-PALBTL-394.eps  'Cacio e pepe.txt'      prontolingua.zip

 

1. Распакуйте в каталог

Ожидаемое поведение – файлы должны быть извлечены в определенный каталог, обычно с тем же именем, что и файл zip.

Вы можете указать целевой каталог, в который вы хотите извлечь файлы.

unzip -d target_directory zip_file

 

Если целевой каталог не существует, он будет создан. Вы не можете создавать вложенные каталоги таким образом.

Обратите внимание, что вы также можете поместить целевой каталог в конец, но не все опции могут быть добавлены в конце.

unzip zip_file -d target_directory

 

2. Смотрите содержимое почтового файла без распаковки

Если вы хотите увидеть, что содержит zip-файл, вам не всегда нужно сначала его извлекать. Вы можете использовать опцию -l, и она покажет содержимое zip-файла.

unzip -l zip_file

 

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

terminator@andreyex:$ unzip -l prontolingua.zip 
Archive:  prontolingua.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
   205358  2019-09-12 23:14   339252-PAJF05-394.ai
   996906  2019-09-12 23:14   339252-PAJF07-322.eps
   213968  2019-09-27 00:00   339252-PALBTI-224.ai
  1005362  2019-09-27 00:00   339252-PALBTL-394.eps
   305531  2019-09-27 00:00   339252-PALBTM-53.jpg
     1462  2019-09-27 09:45   Cacio e pepe.txt
     1116  2019-09-27 09:45   Isola Capri.txt
---------                     -------
  2729703                     7 files

 

Если вы хотите, вы можете получить больше информации, такую как сжатый размер, степень сжатия, используя подробный режим с опцией -v. CRC-32 на выходе – это проверка циклическим избыточным кодом.

terminator@andreyex:$ unzip -v prontolingua.zip 
Archive:  prontolingua.zip
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
  205358  Defl:N   142097  31% 2019-09-18 23:14 792f2380  339252-PAJF05-394.ai
  996906  Defl:N   221228  78% 2019-09-18 23:14 440390d3  339252-PAJF07-322.eps
  213968  Defl:N   147568  31% 2019-09-20 00:00 cdb64dfc  339252-PALBTI-224.ai
 1005362  Defl:N   226727  77% 2019-09-20 00:00 aed3d97a  339252-PALBTL-394.eps
  305531  Defl:N   183363  40% 2019-09-20 00:00 e4ced90f  339252-PALBTM-53.jpg
    1462  Defl:N      728  50% 2019-09-20 09:45 0eb9e17b  Cacio e pepe.txt
    1116  Defl:N      558  50% 2019-09-20 09:45 165dd84e  Isola Capri.txt
--------          -------  ---                            -------
 2729703           922269  66%                            7 files

 

3. Перезаписать все файлы без запроса

Если в каталоге, в который вы извлекаете файлы, уже есть файлы с таким же именем, вы будете перезаписывать каждый такой файл. Вы можете принудительно перезаписать все файлы с опцией -o.

unzip -o -d target_directory zip_file

4. Не перезаписывайте файлы -n

Если вы не хотите, чтобы какой-либо существующий файл был перезаписан вновь извлеченными файлами, используйте опцию -n (означает никогда не перезаписывать).

unzip -n -d target_directory zip_file

5. Обновите файлы и создайте при необходимости

Это немного отличается от перезаписи всех файлов. В этом случае будут перезаписаны только те файлы, которые имеют более новую временную метку, чем существующие файлы. Если файл не существует, он будет создан.

Вы можете добиться этого с помощью опции -u:

unzip -u -d target_directory zip_file

6. Освежить существующие файлы, но не создавать ни одного

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

Опция -f позволяет вам сделать это:

unzip -f -d target_directory zip_file

7. Извлечь в тихом режиме

Когда вы распаковываете файл, он показывает все файлы, которые были извлечены на экране. Теперь представьте zip-файл, содержащий сотни файлов. Если вы извлечете его, ваш экран будет загроможден выводом.

Вы можете использовать тихий режим с опцией -q и вы не увидите ничего на дисплее:

unzip -q -d target_directory zip_file

8. Исключить файлы из извлечения

Вы также можете исключить определенные файлы или файлы определенного типа из извлечения.

unzip zip_file -x file_to_exclude

 

Допустим, в нашем примере мы не хотим извлекать файлы .eps.

terminator@andreyex:$ unzip prontolingua.zip -x *.eps
Archive:  prontolingua.zip
  inflating: 339252-PAJF05-394.ai    
  inflating: 339252-PALBTI-224.ai    
  inflating: 339252-PALBTM-53.jpg   
  inflating: Cacio e pepe.txt        
  inflating: Isola Capri.txt

 

Это были некоторые из наиболее распространенных примеров команды unzip в Linux. Вы всегда можете проверить его справочную страницу, чтобы узнать больше вариантов.

Вы часто используете какой-либо другой вариант с unzip? Почему бы не поделиться этим с нами в комментариях?

Exit mobile version