압축을 풀지 않고도 zip 파일의 파일 내용을 읽을 수 있나요?

압축을 풀지 않고도 zip 파일의 파일 내용을 읽을 수 있나요?

zip 파일이 주어지면 zipfile.zip우리는 그 파일에 text.txt.

text.txt압축을 풀지 않고 내용을 읽을 수 있는 방법이 있나요 zipfile.zip?

답변1

예를 들어 파일을 표준 출력으로 직접 덤프할 수 있습니다. 기술적으로는 여전히 압축을 풀지만 디스크에는 압축을 풀 수 없습니다.

$ unzip -p zipfile.zip text.txt

예를 들어 행 수를 계산하려면 다음을 수행할 수 있습니다.

$ unzip -p zipfile.zip text.txt | wc -l

-c옵션은 유사하지만 내용 앞에 추출된 각 파일의 이름을 씁니다.

답변2

libarchive는 bsdtarinfozip/pkzip 형식을 포함한 다양한 아카이브 형식을 지원하므로 모든 형식에 대해 동일한 CLI를 사용할 수 있습니다.

bsdtar xOf zipfile.zip text.txt

표준 출력에서 ​​지정된 아카이브 멤버의 내용을 덤프합니다 text.txt. 처음에 중지하는 옵션을 추가합니다 q(실제로는 일반적으로 아카이브의 특정 경로에 대해 하나의 항목만 있습니다).

tar, tgz, iso, ar, cpio, 파일 등에 대해 7z동일한 작업을 수행 할 수 있습니다 .

답변3

zip 파일에 사용할 수 있는 파일이 포함된 경우

zcat f.zip
zmore f.zip
zless f.zip
zgrep regexp z.zip

이 명령은 gzip 압축 파일에서도 작동합니다. bzip과 xzip에는 비슷한 명령이 있습니다.

bzcat bzmore bzless bzgrep bzdiff ...
xzcat ...

명령을 사용하여 형식의 압축을 풀 수도 있습니다. 예:

vim f.zip
vim f.bz2   ...
rg -z patter  z.zip     ## ripgrep recursive grep in compressed files

관련 정보