Как распаковать zip-файл из Терминала?

Просто скачал.zip файл из интернета. Я хочу использовать терминал, чтобы распаковать файл. Как правильно это сделать?

9 ответов

Решение

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

sudo apt-get install unzip

После установки утилиты распаковки, если вы хотите извлечь в определенную папку назначения, вы можете использовать:

unzip file.zip -d destination_folder

Вы можете просто использовать unzip,

Установите это:

apt-get install unzip

И использовать это:

unzip file.zip

Более полезный инструмент 7z, который сжат и разархивирует ряд форматов сжатия, особенно lzmaобычно протокол, предлагающий самые высокие уровни сжатия.

Эта команда устанавливает 7z:

sudo apt-get install p7zip-full

Эта команда перечисляет содержимое почтового индекса:

7z l zipfile.zip

Эта команда извлекает содержимое zip:

7z x zipfile.zip

Использование инструментов сценариев: Perl и Python

Во многих ответах здесь упоминаются инструменты, требующие установки, но никто не упомянул, что два языка сценариев Ubuntu, Perl и Python, уже поставляются со всеми необходимыми модулями, которые позволяют разархивировать zip-архив, что означает, что вам не нужно ничего устанавливать остальное. Просто используйте любой из двух скриптов, представленных ниже, чтобы сделать работу. Они довольно короткие и даже могут быть сжаты до однострочной команды, если мы захотим.

питон

#!/usr/bin/env python3
import sys
from zipfile import PyZipFile
for zip_file in sys.argv[1:]:
    pzf = PyZipFile(zip_file)
    pzf.extractall()

Использование:

./pyunzip.py master.zip 

или же

python3 pyunzip.py master.zip

Perl

#!/usr/bin/env perl
use Archive::Extract;
foreach my $filepath (@ARGV){
    my $archive = Archive::Extract->new( archive => $filepath );
    $archive->extract;
}

Использование:

./perlunzip master.zip

или же

perl perlunzip.pl master.zip

Смотрите также

Ты можешь использовать:

unzip file.zip -d somedir

извлечь в yourpath/somedir

Если вы хотите извлечь по абсолютному пути, используйте

sudo unzip file.zip -d /somedir

Если каталоги источника и назначения совпадают, вы можете просто сделать:

unzip filename.zip

Я предпочитаю bsdtar в unzip/zip, Для извлечения они очень похожи:

bsdtar -x -f /one/two/three/four.zip -C /five
unzip /one/two/three/four.zip -d /five

Однако для молнии, bsdtar выигрывает. Скажем, у вас есть этот вход:

/one/two/three/alfa/four.txt
/one/two/three/bravo/four.txt

и хотите это в zip-файле:

alfa/four.txt
bravo/four.txt

Это легко с bsdtar:

bsdtar -a -c -f four.zip -C /one/two/three alfa bravo

почтовый индекс не имеет -d вариант, как распаковать, так что у вас нет возможности достичь вышеупомянутого, если вы cd первый.

Вот подробное описание опций, которые я считаю полезными:

Команда: unzip -[опция] zip-путь.
               -d необязательный каталог для извлечения файлов  
               -l Список архивных файлов.
               -P пароль Используйте пароль для расшифровки зашифрованных записей zipfile (если есть).
               -t Проверить архивные файлы с проверкой циклическим избыточным кодом.  
               -u обновить существующие файлы.  
               -z Архив комментариев

Установить распаковать

Итак, в первую очередь нам нужно установить unzip на нашу систему, если она не установлена. Команда unzip используется для извлечения файлов из ZIP-архива.

Запустите следующую команду для установки unzip

sudo apt-get install unzip

unzip Синтекс

$ unzip [-aCcfjLlnopqtuvy] [-d dir] zipfile

Теперь выполните следующие действия:

Распаковать файл

ВАРИАНТ 1 - Если Zip-файл находится в той же папке / папке, в которой находится ваш терминал, и мы хотим извлечь его в текущем рабочем каталоге.

Используйте следующую команду для достижения вышеописанного сценария

sudo unzip zip_file_name.zip

если zip-файл защищен каким-либо паролем, используйте следующую команду:

sudo ubzip -P zip_file_name.zip

Пожалуйста, убедитесь, что вы используете -P (заглавная P), а не -p, потому что это разные варианты.

ВАРИАНТ 2 - Если zip-файл отсутствует в том же каталоге, и мы хотим извлечь / разархивировать файл в другом каталоге.

Используйте следующую команду для достижения вышеописанного сценария

sudo unzip path/filename.zip -d another_path_or_same_path

если мы не используем опцию -d, файл будет извлечен для представления рабочего каталога.

И если zip-файл защищен паролем, мы также можем использовать -P,

использовать команду tar в Linux / Unix

tar является аббревиатурой от Tape Archive. Команда tar используется для манипулирования архивами в Linux/Unix. Системные администраторы часто используют команду tar для копирования нескольких файлов или каталогов в сильно сжатый архив, которые называются tarball или же tar, bzip а также gzip в системе Linux / Unix.

tar Syntex

tar [OPTION...] [FILE]...

Или же

смола требуется Флаги

tar {-r|-t|-c|-x|-u}

tar необязательные флаги

tar {one of the required Flags} [ -d ][-B] [ -F ] [ -E ] [ -i ] [-h ] [ -l ] [ -m ] [ -o ] [ -p ] [ -w] [ -s ] [ -U ] [ -v ]
[-Number] [-b Blocks] [-f Archive]

Примеры

Создайте архивный файл tar, сжимая каталог или отдельный файл

Команда терминала ниже создаст .tar файл называется sample_dir.tar с каталогом /home/codebind/sample_dir или же sample_dir в настоящем рабочем каталоге.

ripon@ripon:~$  tar -cvf sample_dir.tar sample_dir
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tar

https://ask-ubuntu.ru/images/f5282e b3adc1ed1f88b33719b6da3a8455361f68.png

Вот что на самом деле означают эти флаги (-cvf)

-c, --create - создать новый архив

-x, --extract, --get - извлечь файлы из архива

-f, --file ARCHIVE - использовать архивный файл или устройство АРХИВ

Создайте tar.gz или же tgz Архивировать файл путем сжатия каталога или одного файла

Команда терминала ниже создаст .tar.gz файл называется sample_dir.tar.gz с каталогом /home/codebind/sample_dir или же sample_dir в настоящем рабочем каталоге.

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

-z, --gzip, --gunzip --ungzip - сжать архив с помощью gzip

ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dirsample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tar.gz

https://ask-ubuntu.ru/images/227121df1d34f59cbb716e0c5e b9ff8fb2ccaede.png

Команда ниже создаст файл.tgz. Обратите внимание, что tar.gz и tgz похожи.

ripon@ripon:~$ tar -cvzf sample_dir.tgz sample_dirsample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tgz

Сжатие нескольких каталогов или файлов одновременно

Допустим, например, мы хотим сжать sample_dir каталог, java_test каталог, а abc.py файл в файл tar называется sample_dir.tar.gz,

Запустите следующую команду для достижения цели выше.

ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dir java_test abc.py
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
java_test/
java_test/HelloCV.java
abc.py
ripon@ripon:~$ ls
sample_dir java_test abc.py sample_dir.tar.gz

Создайте .bzip2 Архивировать файл путем сжатия каталога или отдельного файла

ripon@ripon:~$ tar -cjvf sample_dir.tar.bz2 sample_dir
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ 

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

-f, --file ARCHIVE - использовать архивный файл или устройство АРХИВ

экстракт .tar Архивный файл

Мы можем извлечь или распаковать сжатый файл, используя команду tar. Команда ниже извлечет содержимое sample_dir.tar в настоящий каталог.

ripon@ripon:~$ tar -xvf sample_dir.tar
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ 

Следующая команда извлечет или разархивирует файлы в указанном каталоге, т.е. /home/codebind/dir_name в этом случае.

ripon@ripon:~$ tar -xvf sample_dir.tar -C /home/codebind/dir_name
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ 

мы добавили дополнительный флаг -C к команде. Вот какой флаг -C на самом деле значит

-C, --directory DIR - перейти в каталог DIR

Другие вопросы по тегам