Extraindo um arquivo específico de um arquivo usando o 7-Zip

0

Eu executo o Live CD do Linux e preciso extrair um arquivo específico de um wim-archive 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?

Eu tentei a opção -i , mas isso não funcionou:

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


Error:
Incorrect command line
    
por Alexander Pozdneev 05.08.2018 / 11:22

1 resposta

2

A página man 7z diz:

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

Você precisa especificar explicitamente ! antes do nome do arquivo e proteger o switch da expansão bash com aspas simples: 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

(Você pode evitar manter o caminho completo usando a letra da função e : 7z e '-i!Windows/System32/BootRec.exe' winRE.wim .)

BTW, se você não proteger a opção -i com aspas simples ou protegê-la com aspas duplas, receberá um erro:

xubuntu@xubuntu:~$ 7z x "-i!Windows/System32/BootRec.exe" winRE.wim 
bash: !Windows/System32/BootRec.exe: event not found
    
por 05.08.2018 / 11:22