파일 이름만 알 뿐 정확한 위치는 모릅니다. 아카이브에서 파일을 추출하고 싶습니다. 아카이브 어디에 있는지 알고 싶습니다.
답변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