Как распаковать 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