Eu corro o Linux Live CD e preciso extrair um arquivo específico de um arquivo wim que está localizado em uma unidade de disco. Eu conheço um caminho completo para o arquivo no arquivo:
xubuntu@xubuntu:~$ 7z l winRE.wim | grep -i bootrec.exe
2009-08-28 15:02:29 ....A 299008 134388 Windows/System32/BootRec.exe
Estou com pouco espaço em disco e não tenho a possibilidade de descompactar todo o arquivo.
Como eu poderia extrair esse arquivo específico do arquivo?
Tentei a -i
opção, mas não funcionou:
xubuntu@xubuntu:~$ 7z x -i Windows/System32/BootRec.exe winRE.wim
Error:
Incorrect command line
A
man 7z
página diz:Você precisa especificar explicitamente
!
antes do nome do arquivo e proteger o switch da expansão do bash com aspas simples:7z x '-i!Windows/System32/BootRec.exe' winRE.wim
(Você pode evitar manter o caminho completo usando a
e
letra de função:7z e '-i!Windows/System32/BootRec.exe' winRE.wim
.)BTW, se você não proteger a
-i
opção com aspas simples ou protegê-la com aspas duplas, você receberá um erro:por exemplo:
Este comando funcionou para mim, eu tentei no servidor Ubuntu 16.04.
Funcionou para mim (você pode querer usar barras, veja abaixo):
7z e -so 'file.zip' 'file\path\file.png' > 'file.png'
(Um arquivo PNG extraído do arquivo ZIP: o comando irá criar ou OVERWRITE qualquer arquivo chamado "file.png" no diretório atual.
e
: extrair mantendo nome do arquivo mas não mantendo o caminho do arquivo.-so
: saída para stdout.)Não funcionou para mim:
Por que esses comandos não funcionaram para mim, mas esse comando funcionou? Talvez porque os separadores de pasta nos caminhos de arquivo no arquivo ZIP fossem barras invertidas em vez das barras normais. Talvez eu devesse ter executado esses comandos com barras invertidas (\) ou barras invertidas com escape (\\), então teria funcionado.
Se você tiver um arquivo ZIP com as barras invertidas desencorajadas ( https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT §4.4.17.1) em caminhos de arquivo, aparentemente, você também pode extrair um arquivo individual dele através do seguinte comando de descompactação:
unzip -p file.zip 'path\\to\\file.png'
(Crédito: https://archived.moe/g/thread/85892819#85900314 )