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는 bsdtar
infozip/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