Intereting Posts
Архивируйте самый старый файл, где имена файлов указаны в соответствии с их меткой времени make не знаю, как сделать CXXFLAGS. Стоп Добавление обоев в оболочку GNOME странное поведение при сопоставлении шаблонов sed Что такое умный способ использовать / поддерживать два отдельных файла bash_profile и vimrc? С какой целью perl * будет исключен в yum.conf? Как «установить» эту домашнюю сеть Установка Heroku – проблемы с блокировкой Уверенное завершение дела в Bash? Найти все каталоги, в которых у пользователя есть доступ к поиску и эхо из этих каталогов в оболочке Точка доступа Debian обнаружена, но не обеспечивает доступа в Интернет Проблема с подключением моста при настройке со сценарием Как установить git-svn с учетом этого странного статуса apt-cache? Эквивалентная команда для “ time“ для использования памяти? Ядро установки Dnf не устанавливает ядро ​​в / boot

Извлечение определенного файла из архива с использованием 7-Zip

Я запускаю Linux Live CD и мне нужно извлечь конкретный файл из архива wim, который находится на диске Я знаю полный путь к файлу в архиве:

xubuntu@xubuntu:~$ 7z l winRE.wim | grep -i bootrec.exe 2009-08-28 15:02:29 ....A 299008 134388 Windows/System32/BootRec.exe 

У меня мало места на диске и я не могу распаковать весь архив.

Как я могу извлечь этот конкретный файл из архива?

Я попробовал опцию -i , но это не сработало:

 xubuntu@xubuntu:~$ 7z x -i Windows/System32/BootRec.exe winRE.wim Error: Incorrect command line 

На странице man 7z написано:

  -i[r[-|0]]{@listfile|!wildcard} Include filenames 

Вам нужно явно указать ! перед именем файла и защитите коммутатор от расширения bash одинарными кавычками: 7z x '-i!Windows/System32/BootRec.exe' winRE.wim

 xubuntu@xubuntu:~$ 7z x '-i!Windows/System32/BootRec.exe' winRE.wim 7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,4 CPUs) Processing archive: winRE.wim Extracting Windows/System32/BootRec.exe Everything is Ok Size: 299008 Compressed: 227817568 

(Вы можете избежать сохранения полного пути, используя букву функции e : 7z e '-i!Windows/System32/BootRec.exe' winRE.wim .)

Кстати, если вы не защищаете опцию -i одинарными кавычками или не защищаете ее двойными кавычками, вы получаете сообщение об ошибке:

 xubuntu@xubuntu:~$ 7z x "-i!Windows/System32/BootRec.exe" winRE.wim bash: !Windows/System32/BootRec.exe: event not found 
 7z e [archive name] -o[direction] [filename] -r 

например:

 7z e 'Movies.rar' -o/root/Downloads/ 'Rush.mp4' -r 

Эта команда работала для меня, я попробовал это на сервере Ubuntu 16.04.