Linux
使用 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