명령줄에 추가 정보 없이 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

관련 정보