Только что скачал zip-файл из Интернета. Я хочу использовать терминал, чтобы распаковать файл. Как правильно это сделать?
Если unzip
команда еще не установлена в вашей системе, затем запустите:
sudo apt-get install unzip
После установки утилиты unzip, если вы хотите распаковать архив в определенную папку назначения, вы можете использовать:
unzip file.zip -d destination_folder
Если исходный и конечный каталоги совпадают, вы можете просто выполнить:
unzip file.zip
Вы можете просто использовать unzip
.
Установите его:
apt-get install unzip
И использовать его:
cd /path/to/fileunzip 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
Использование скриптовых инструментов: Perl и Python
Во многих ответах здесь упоминаются инструменты, требующие установки, но никто не упомянул, что два языка сценариев Ubuntu, Perl и Python, уже поставляются со всеми необходимыми модулями, которые позволяют вам распаковывать zip-архив, что означает, что вам не нужно устанавливать что-либо еще. Просто используйте любой из двух сценариев, представленных ниже, чтобы выполнить эту работу. Они довольно короткие и даже могут быть сведены к однострочной команде, если мы захотим.
Питон
#!/usr/bin/env python3import sysfrom zipfile import PyZipFilefor 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 perluse Archive::Extract;foreach my $filepath (@ARGV){ my $archive = Archive::Extract->new( archive => $filepath ); $archive->extract;}
Использование:
./perlunzip master.zip
или
perl perlunzip.pl master.zip
Смотрите также
Если исходный и конечный каталоги совпадают, вы можете просто выполнить:
unzip filename.zip
Я предпочитаю bsdtar
к unzip
/zip
. Для извлечения они довольно похожи:
bsdtar -x -f /one/two/three/four.zip -C /fiveunzip /one/two/three/four.zip -d /five
Однако для застегивания молнии, bsdtar
выигрывает. Допустим, у вас есть этот ввод:
/one/two/three/alfa/four.txt/one/two/three/bravo/four.txt
и хочу, чтобы это было в zip-файле:
alfa/four.txtbravo/four.txt
Это легко сделать с bsdtar
:
bsdtar -a -c -f four.zip -C /one/two/three alfa bravo
zip не имеет -d
опция, подобная unzip, так что у вас нет возможности достичь вышеуказанного, если вы cd
первый.
Вот подробное описание опций, которые я нахожу полезными:
Команда: разархивировать -[опция] zip-путь. -d необязательный каталог для извлечения файлов -l Список архивных файлов. - П пароль Воспользуйся пароль для расшифровки зашифрованных записей zip-файла (если таковые имеются). -t Тестировать архивные файлы с циклической проверкой избыточности. -u Обновите существующие файлы. -комментарий к архиву z
Следуйте этим инструкциям: http://www.codebind.com/linux-tutorials/unzip-zip-file-using-terminal-linux-ubuntu-linux-mint-debian/
Установить распаковать
Итак, прежде всего нам нужно установить unzip в нашей системе, если он не установлен. команда unzip используется для извлечения файлов из архива aZIP.
Выполните следующую команду для установки
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, файл будет извлечен в каталог presentworking.
И если zip-файл защищен паролем, мы также можем использовать
-P
.используйте команду tar в Linux / Unix
tar
это аббревиатура от ленточного архива. команда tar используется для управления архивами в Linux/Unix. Системные администраторы часто используют tarcommand для копирования множества файлов или каталогов в сильно сжатый архив, который называетсяtarball
илиtar
,bzip
иgzip
в Linux/Unix система.синтаксис tar
tar [OPTION...] [FILE]...
Или
необходимые флаги tar
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_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ lssample_dir sample_dir.tar
Вот что на самом деле означают эти флаги (-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
– Сжать архив с помощью gzipripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ lssample_dir sample_dir.tar.gz
Приведенная ниже команда создаст файл .tgz. Одно это нужно заметить istar.gz и tgz оба похожи.
ripon@ripon:~$ tar -cvzf sample_dir.tgz sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ lssample_dir sample_dir.tgz
Сжатие нескольких каталогов или файлов одновременно
Допустим, например, мы хотим сжать
sample_dir
каталог,thejava_test
каталог, а такжеabc.py
файл в tar-файл, называемыйsample_dir.tar.gz
.Выполните следующую команду для достижения вышеуказанной цели.
ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dir java_test abc.pysample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputjava_test/java_test/HelloCV.javaabc.pyripon@ripon:~$ lssample_dir java_test abc.py sample_dir.tar.gz
Создавать
.bzip2
Архивируйте файл путем сжатия каталога или одного файлаripon@ripon:~$ tar -cjvf sample_dir.tar.bz2 sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$
Обратите внимание, что мы добавили дополнительный флаг
-f
к команде.Вот что такое флаг-f
на самом деле имею в виду
-f, --file ARCHIVE
– используйте архивный файл или архив устройстваИзвлекать
.tar
Архивный ФайлМы можем извлечь или распаковать сжатый файл с помощью команды tar. Приведенная ниже команда извлечет содержимое
sample_dir.tar
в существующий каталог.ripon@ripon:~$ tar -xvf sample_dir.tarsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$
Следующая команда извлечет или распакует файлы в указанном каталоге, т.е.
/home/codebind/dir_name
в этом случае.ripon@ripon:~$ tar -xvf sample_dir.tar -C /home/codebind/dir_namesample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$
мы добавили дополнительный флаг
-C
к команде.Вот что такое флаг-C
на самом деле имею в виду
-C, --directory DIR
– изменить на каталог DIR
Извлеките все файлы из текущей папки, вы можете использовать: распаковать \*.zip
@burtsevyg обратная косая черта там не нужна. Это заставит оболочку рассматривать \*
как буквальный символ звезды. Просто используйте unzip *.zip
, чтобы заставить оболочку развернуть *
для всех файлов, заканчивающихся на .zip
В Ubuntu уже установлено несколько инструментов сжатия / распаковки. Запустите apropos zip
из консоли для получения полного списка.
Использование *
в одиночку у меня не сработало. Это вызвало ошибки “имя файла не соответствует”. \*
сделал свое дело.
Я рекомендую вам использовать и изучать “unar” вместо конкретного zip-файла, если вам не нужны конкретные функции. “Поддерживаемые форматы файлов включают Zip, Tar-GZIP, Tar-BZip2, RAR, 7-zip, LHA, StuffIt и многие другие старые и малоизвестные форматы”…
По теме (для файлов *.tgz
): Как распаковать файл .tgz с помощью терминала?