추가 정보 없이 명령줄에서 zip의 파일을 나열하는 방법

추가 정보 없이 명령줄에서 zip의 파일을 나열하는 방법

내 Bash 명령줄에서 다음 unzip -l test.zip을 사용하면 다음과 같은 출력이 표시됩니다.

Archive:  test.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
   810000  05-07-2014 15:09   file1.txt
   810000  05-07-2014 15:09   file2.txt
   810000  05-07-2014 15:09   file3.txt
---------                     -------
  2430000                     3 files

하지만 나는 파일 세부 정보가 포함된 줄에만 관심이 있습니다.

다음과 같이 grep을 사용하여 필터링을 시도했습니다.

unzip -l test.zip | grep -v Length | grep -v "\-\-\-\-" | g -v Archive | grep -v " files"

하지만 길이가 길고 오류가 발생하기 쉽습니다(예: 이 목록의 파일 이름 Archive는 제거됩니다).

unzip -l(압축 해제 매뉴얼 페이지를 확인했지만 아무것도 찾지 못함) 또는 이 작업을 수행하는 다른 도구를 해제하는 다른 옵션이 있습니까?

나에게 중요한 것은 실제로 아카이브의 압축을 푸는 것이 아니라 그 안에 어떤 파일이 있는지 확인하는 것입니다.

답변1

zipinfo -1 file.zip

또는:

unzip -Z1 file.zip

파일만 나열됩니다.

각 파일 이름에 대한 추가 정보가 필요한 경우 다음을 수행할 수 있습니다.

unzip -Zl file.zip | sed '1,2d;$d'

또는:

unzip -l file.zip | sed '1,3d;$d' | sed '$d'

또는 (GNU 가정 head):

unzip -l file.zip | tail -n +4 | head -n -2

libarchive또는 다음을 사용할 수 있습니다 bsdtar.

$ bsdtar tf test.zip
file1.txt
file2.txt
file3.txt
$ bsdtar tvf test.zip
-rw-rw-r--  0 1000   1000   810000 Jul  5  2014 file1.txt
-rw-rw-r--  0 1000   1000   810000 Jul  5  2014 file2.txt
-rw-rw-r--  0 1000   1000   810000 Jul  5  2014 file3.txt
$ bsdtar tvvf test.zip
-rw-rw-r--  0 1000   1000   810000 Jul  5  2014 file1.txt
-rw-rw-r--  0 1000   1000   810000 Jul  5  2014 file2.txt
-rw-rw-r--  0 1000   1000   810000 Jul  5  2014 file3.txt
Archive Format: ZIP 2.0 (deflation),  Compression: none

관련 정보