저는 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
답변1
페이지 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
답변2
7z e [archive name] -o[direction] [filename] -r
예를 들어:
7z e 'Movies.rar' -o/root/Downloads/ 'Rush.mp4' -r
이 명령은 나에게 효과적이었고 우분투 서버 16.04에서 사용해 보았습니다.
답변3
저에게 효과적이었습니다(슬래시를 사용할 수도 있습니다. 아래 참조): (
7z e -so 'file.zip' 'file\path\file.png' > 'file.png'
ZIP 파일에서 추출된 PNG 파일 1개: 이 명령은 현재 디렉터리에 "file.png"라는 이름의 파일을 만들거나 덮어씁니다. e
:추출은 파일 이름을 유지하지만 파일 경로가 아님 -so
: 표준 출력으로 출력).
나에게 적합하지 않음:
7z e 'file.zip' 'file.png' -r
7z e 'file.zip' -o. 'file.png' -r
7z e 'file.zip' -o'.' 'file.png' -r
7z e '-i!file.png' 'file.zip'
7z e '-i!file/path/file.png' 'file.zip'
7z e '-i!/file/path/file.png' 'file.zip'
이 명령이 나에게는 작동하지 않는데 왜 하나만 작동합니까? ZIP 파일의 파일 경로에 있는 폴더 구분 기호가 일반 슬래시가 아닌 백슬래시일 수 있습니다. 아마도 백슬래시(\) 또는 이스케이프 백슬래시(\\)를 사용하여 이 명령을 실행해야 할 것입니다. 그러면 작동할 것입니다.
백슬래시를 사용할 수 없는 ZIP 파일이 있는 경우(https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT§4.4.17.1) 파일 경로에서 다음 unzip 명령을 통해 개별 파일을 추출할 수도 있습니다.
unzip -p file.zip 'path\\to\\file.png'