압축을 풀지 않고 zip 아카이브에 있는 특정 파일의 경로를 어떻게 알 수 있나요?

압축을 풀지 않고 zip 아카이브에 있는 특정 파일의 경로를 어떻게 알 수 있나요?

파일 이름만 알 뿐 정확한 위치는 모릅니다. 아카이브에서 파일을 추출하고 싶습니다. 아카이브 어디에 있는지 알고 싶습니다.

답변1

unzip와일드카드와 와일드카드가 허용됩니다. 파일 이름을 알고 있다면 간단히 다음과 같이 말할 수 있습니다.

unzip archive.zip "**/file_to_extract"

해당 파일을 추출하기 위해.

답변2

의견과 답변을 조합하여 다음과 같이 할 수 있습니다.

unzip -l archive.zip | grep "nameOfile"
./tmp/nameOffileponey
./ham/smoked/nameOfile
#identify the path of the file precisely in your archive if filtering gives you several result and then use 
 unzip archive.zip ./ham/smoked/nameOfile

이것은 작동합니다

답변3

zip 아카이브를 파일 시스템으로 마운트퓨즈 지퍼. 그런 다음 원하는 명령을 사용하여 그 안에 있는 파일에 액세스할 수 있습니다.

mkdir foo
fuse-zip foo.zip foo

needle.txt그런 다음 해당 파일이 있는 하위 디렉터리에서 복사하세요.

find foo -name needle.txt -exec cp -p {} . \;

또는 쉘의 재귀 와일드카드를 사용하십시오(bash에서는 shopt -s globstar먼저 실행해야 하며 zsh에서는 즉시 실행됩니다).

cp -p foo/**/needle.txt .

사용이 끝나면 파일 시스템을 마운트 해제합니다.

fusermount -u foo

관련 정보