내 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