Просто загрузил ZIP-файл из Интернета. Я хочу использовать терминал для распаковки файла. Каков правильный способ сделать это?
Просто загрузил ZIP-файл из Интернета. Я хочу использовать терминал для распаковки файла. Каков правильный способ сделать это?
Если unzip
команда еще не установлена в вашей системе, а затем выполните:
sudo apt-get install unzip
После установки утилиты unzip, если вы хотите извлечь ее в определенную папку назначения, вы можете использовать:
unzip file.zip -d destination_folder
Вы можете просто использовать unzip
,
Установите его: apt-get install unzip
И используйте его: unzip file.zip
Более полезным инструментом является 7z
, который застегивает и распаковывает ряд форматов сжатия, в частности lzma
, обычно протокол, предлагающий самые высокие коэффициенты сжатия.
Эта команда устанавливает 7z
:
sudo apt-get install p7zip-full
Эта команда перечисляет содержимое zip:
7z l zipfile.zip
Эта команда извлекает содержимое zip:
7z x zipfile.zip
Вы можете использовать:
unzip file.zip -d somedir
извлечь yourpath/somedir
Если вы хотите извлечь абсолютный путь, используйте
sudo unzip file.zip -d /somedir
В многочисленных ответах здесь упоминаются инструменты, требующие установки, но никто не упомянул, что два языка сценариев 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 master.zip
#!/usr/bin/env perl
use Archive::Extract;
foreach my $filepath (@ARGV){
my $archive = Archive::Extract->new( archive => $filepath );
$archive->extract;
}
Применение:
./perlunzip master.zip
Если ваш пункт назначения совпадает с исходным zip-файлом, вы можете просто выполнить:
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
zip не имеет -d
например, разархивировать, так что у вас нет способа достичь вышеуказанного, если вы не cd
первый.
Вот подробное описание вариантов, которые я нахожу полезными:
Command: unzip -[option] zip-path.
-l List archive files.
-t Test archive files with cyclic redundancy check.
-u update the existing files.
-z archive comment.
Вот команда на случай, если вы хотите извлечь ее из текущего каталога
unzip <source_file_path>.zip
если вы хотите извлечь в определенную папку назначения, вы можете использовать
unzip <sorce_file_path>.zip -d <destination_path>
если есть пароль, который вы также можете использовать -P
unzip -P <password> <sorce_file_path>.zip
Если пакет unzip еще не установлен в вашей системе, запустите:
sudo apt-get install unzip
Прежде всего вам необходимо установить unzip
если он не установлен.
sudo apt-get install unzip
1 - Если файл находится в том же каталоге, в котором находится терминал, и вы хотите извлечь его в том же месте.
sudo unzip file.zip
если файл защищен паролем:
sudo unzip -P file.zip
и убедитесь, что это -P
не -p
это другой вариант
2 - Если файл не находится в том же каталоге, и вы хотите извлечь его в другой каталог, это терминал. использование:
sudo unzip path/filename.zip -d anotherOrSamePath
если вы не использовали -d
файл будет извлечен в том месте, где находится терминал.
И если есть пароль, вы также можете использовать -P
,