Xem danh sách các tệp trong kho lưu trữ ZIP trên Linux


407

Làm cách nào tôi có thể xem danh sách các tệp trong kho lưu trữ ZIP mà không giải nén nó?


Có thể làm tương tự cho một kho lưu trữ unix thông thường? (tar / gzip / bz2 / etc)
ThorSummoner

tar tvf. nếu .gz, thêm một z. Đối với bz2, thêm j. Nhiều hơn nữa, kiểm tra trang người đàn ông.
UtahJarhead

Câu trả lời:


469

Các lesstiện ích có khả năng nhìn trộm vào một zipkho lưu trữ. Trong thực tế, nếu bạn nhìn vào kết quả đầu ra của unzip -l zipfileless zipfile, bạn sẽ thấy chúng giống hệt nhau.


98
Lưu ý rằng less zipfiletrên MacOS-X hiển thị tệp nhị phân, do đó bạn thấy rất nhiều rác thay vì nội dung của tệp zip. Sau đó, bạn nên chọn cho `` ùnzip -l zipfile```
heiglandreas

10
@ayaz Trong hệ thống nào ít liệt kê zipfiles? Tôi thấy các bình luận nói rằng nó không hoạt động trên MAC, Ubuntu và ở đây tôi sử dụng Debian. Debian cũng hiển thị rác nhị phân.
Bác sĩ Beco

12
Trong Ubuntu, hãy thử view [zipfile].
Samuel Lampa

4
SAI LẦM. unzip -l hoạt động tốt để hiển thị các tệp bên trong kho lưu trữ zip, nhưng ít đưa ra nội dung nhị phân trong nhiều trường hợp và tất nhiên đó là một mớ hỗn độn.
Arturas M

17
Bạn cần trình lesspipetrợ giúp được cài đặt để cho phép hỗ trợ tệp zip ít hơn. Đó là tiêu chuẩn trên nhiều hệ thống linux nhưng không phải trên OSX, nhưng bạn có thể cài đặt nó với brew.
pimlottc

112

Thử unzip -l files.zip | less

Ngoài ra, xem man unzipđể có thêm tùy chọn


6
Bạn có thể bỏ qua các đường ống để lesschỉ huy. Đó là ý tưởng tuyệt vời trong một bộ sưu tập lớn các tập tin, mặc dù.
omar

65

Để liệt kê nội dung zip:

zipinfo -1 myzipfile.zip

Đối với đầu ra chi tiết:

zipinfo myzipfile.zip

7
Câu trả lời hay, bạn không phải phân tích đầu ra chỉ để lấy tên tệp.
Antoine Pelisse

34

Vui lòng sử dụng

vim ZIP_FILE_NAME

cho cùng. Đây là một đơn giản và dễ nhớ.


5
Thật tuyệt, điều này cũng cho phép mở các tệp riêng lẻ trong kho lưu trữ mà không cần giải nén
user3885927

Khá bất ngờ, và vô cùng tiện dụng! Cảm ơn!
Pierre

Trên thực tế: điều này sẽ không hoạt động nếu unzipkhông được cài đặt trên hệ thống. Bên cạnh đó, tuyệt vời!
sjas

13

Bạn có thể làm cho zip xuất hiện như là một thư mục (trong đó bạn sử dụng cd, lsvv) bằng cách gắn nó với các cầu chì-zip hệ thống tập tin ảo.

mkdir foo.d
fuse-zip foo.zip foo.d
ls foo.d
cat foo.d/README
...
fusermount -u foo.d
rmdir foo.d

Một hệ thống tập tin FUSE khác có liên quan là AVFS . Nó tạo ra một khung nhìn của toàn bộ hệ thống phân cấp thư mục của bạn, nơi tất cả các tài liệu lưu trữ có một thư mục được liên kết (cùng tên được xử lý #ở cuối) xuất hiện để giữ nội dung lưu trữ.

mountavfs
ls ~/.avfs/$PWD/foo.zip\#
cat ~/.avfs/$PWD/foo.zip\#/README
...
umountavfs

Nhiều trình quản lý tệp hiện đại (ví dụ Nautilus, Cá heo) hiển thị nội dung lưu trữ trong suốt.

AVFS là chỉ đọc. Fuse-zip là đọc-ghi, nhưng hãy cẩn thận rằng các thay đổi chỉ được ghi vào tệp zip tại thời điểm không đếm được, vì vậy đừng bắt đầu đọc kho lưu trữ để mong nó được sửa đổi cho đến khi fusermount -utrả về.


Đẹp đấy, Giles. Cảm ơn. Chỉ cần nhanh chóng: người ta có thể thêm tệp vào nó bằng cách chỉ "cp" vào thư mục không?
Bác sĩ Beco

@DrBeco Với cầu chì-zip, vâng. Với avfs, không.
Gilles

9

Ít nhất là trong Ubuntu, lệnh dễ nhất có thể là:

view [zipfile]

Điều này sẽ mở danh sách tập tin trong trình soạn thảo văn bản tiêu chuẩn của bạn (nano, vim, v.v.).


2

Nó thực sự unzip -l file.zip | grep "search"hoặc nếu bạn có rất nhiều tập tin

for i in `ls *zip`; do 
  unzip -l $i | grep "search"; 
done

Cập nhật: Thay đổi từ '-p' thành '-l' để tìm kiếm tệp.


2

Nếu bạn định hướng đồ họa nhiều hơn, Midnight Commander cũng có thể duyệt các tệp zip như thể chúng là các thư mục thông thường.


1

Một giải pháp toàn diện hơn: vim | | emacs

Câu trả lời trước đây của @kinORnirvana là yêu thích của tôi để tạo một tệp có nội dung của kho lưu trữ zip.

zipinfo [-1] archive.zip > archive_content.txt

Tuy nhiên, tôi khuyên dùng vim hoặc emacs (không phải nano) nếu bạn cần duyệt vào tệp lưu trữ hoặc thậm chí để xem nội dung của tệp chứa trong đó.

vim archive.zip

Cách tiếp cận này cũng hoạt động với các định dạng lưu trữ khác:

vim file.tar
vim file.tar.gz
vim file.tar.bz2

Với vim hoặc emacs bạn có thể:

  • duyệt cấu trúc thư mục của tập tin lưu trữ.
  • xem nội dung của bất kỳ tập tin nào bên trong tập tin lưu trữ

nhập mô tả hình ảnh ở đây


0

(yaa) Còn một câu trả lời khác:

Bí danh lệnh này:

alias vless='/usr/share/vim/vim73/macros/less.sh'

và bạn có thể sử dụng vless file.zipđể tận dụng vi(hoặc vim) ít tập lệnh hơn.

(cũng tốt để thay thế ít hơn, vì vậy bạn có thể có màu sắc)


1
less -R không hỗ trợ màu ANSI.
Sylvain Leroux
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.