web-dev-qa-db-ja.com

7-Zipを使用してアーカイブから特定のファイルを抽出する

Linux Live CDを実行していて、ディスクドライブにあるwim-archiveから特定のファイルを抽出する必要があります。アーカイブ内のファイルへの完全パスを知っています。

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
4

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
9
7z e [archive name] -o[direction] [filename] -r

例えば:

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

このコマンドはうまくいきました。ubuntuサーバー16.04で試しました。

0
Bruss doe