Đọc nội dung của một tập tin nén mà không cần giải nén?


153

Làm cách nào tôi có thể đọc nội dung của một tệp cụ thể trong kho lưu trữ mà không cần giải nén .zip nó được chứa trong đó? Tôi đang sử dụng dòng lệnh Linux.

Một câu hỏi trước đó hỏi về việc xem thư mục của kho lưu trữ. Nhưng đối với tôi nó không đủ để xem chỉ một danh sách các tệp trong kho lưu trữ, tôi cần xem nội dung của một tệp trong kho lưu trữ.


1
Sao y

@ fixer1234 (và những người khác): Câu hỏi được liên kết hỏi , Làm thế nào tôi có thể xem các tệp trong kho lưu trữ ZIP? AF AFIC, đó là câu hỏi tương tự như Làm thế nào tôi có thể xem nội dung của một tập tin. Những người trả lời câu hỏi đó đã giải thích nó như là Làm thế nào tôi có thể xem thư mục của kho lưu trữ? Tuy nhiên, câu trả lời của Gilles (tự nhiên) và câu trả lời của Rajasekhar Tolety (rõ ràng) cho câu hỏi đó cung cấp câu trả lời cho câu hỏi này.
Scott

1
@ Hủy bỏ, có lẽ chúng ta nên tìm ra cách hợp nhất hai câu hỏi để cả hai chủ đề được trình bày trong một hoặc tập trung vào câu hỏi khác để rõ ràng về thư mục và sau đó di chuyển câu trả lời giữa cả hai vị trí để khớp với các câu hỏi. Ngay bây giờ, cả hai là một mớ hỗn độn.
fixer1234

@ fixer1234: Tôi đồng ý, đến một điểm. Người điều hành luôn nói với chúng tôi rằng các bản sao là một điều tốt, bởi vì chúng cung cấp bề mặt tiếp xúc nhiều hơn cho các công cụ tìm kiếm (nghĩa là nhiều khả năng tìm kiếm sẽ tìm thấy một trong những câu hỏi). Nhưng có một điều khó khăn: nếu người dùng tìm thấy một trong những câu hỏi và mối liên kết không rõ ràng (và không ai nhìn vào danh sách các câu hỏi của Linked Linked và và người dùng chỉ tìm thấy một phần nhỏ của câu trả lời. DavidPostill bỏ phiếu cuối cùng để mở lại câu hỏi này; có lẽ bạn nên nói chuyện với anh ấy
Scott

@Scott - Cho rằng người hỏi câu hỏi đã đánh dấu vào Làm thế nào tôi có thể xem thư mục của kho lưu trữ? Câu trả lời như được chấp nhận, tôi phải nghĩ rằng đó có thể là mục đích của câu hỏi. Thật không may, cụm từ mơ hồ đến mức nó có thể có nghĩa là một trong hai cách giải thích.
M. Justin

Câu trả lời:


198

unzip -l archive.zip liệt kê nội dung của kho lưu trữ ZIP để đảm bảo tệp của bạn nằm trong.

Sử dụng -ctùy chọn để ghi nội dung của các tệp được đặt tên vào thiết bị xuất chuẩn (màn hình) mà không phải giải nén toàn bộ kho lưu trữ.

unzip -c archive.zip file1.txt file2.txt | less

Đối với loại hoạt động này, tôi luôn luôn dẫn đầu ra less, nếu không toàn bộ tệp sẽ bay lên màn hình trước khi bạn có thể đọc nó.

BTW zcat là tuyệt vời để xem nội dung của các tệp .gz mà không phải giải nén chúng trước.


8
Ít nhất là trong Ubuntu, ít có cấu hình nào đó được thực hiện theo mặc định - vì vậy less archive.zipthực sự hiển thị danh sách các tệp.
aviv

1
bzcat để xem nội dung của các tệp bz2 mà không phải giải nén chúng trước ...
Justin E

3
unzip -c cũng hiển thị tên tệp và một số tin nhắn bổ sung (gửi chúng đến thiết bị xuất chuẩn). Sử dụng -p thay vì chỉ gửi tệp ở định dạng nhị phân. Điều đó hữu ích hơn cho đường ống
Juan Calero

Với $LESSOPENthiết lập của bạn thành lesspipe, bạn có thể chỉ less foo.gzđể xem nội dung được giải nén. (@aviv: đây là điều tương tự cho phép less foo.zipdẫn unzip -l foo.zipvào chính nó).
Peter Cordes

unzip -c archive.zip '*' | lesslàm những gì tôi đang tìm kiếm: cat nội dung của kho lưu trữ zip.
Peter Cordes

4

zipinfolà một công cụ khác mà bạn có thể sử dụng, điều này rất hữu ích nếu bạn đang sử dụng hệ thống khóa mà unzipkhông được phép.


4

Nếu bạn chỉ cần tìm để xem hình ảnh bên trong tài liệu lưu trữ, bạn có thể sử dụng Comix hoặc mới hơn MComix để xem hình ảnh bên trong .zip, .rar, .cbr, và .cbztập tin mà không giải nén.


2

Bắt đầu Emacstrong dòng lệnh và mở các tệp zip của bạn với Zip-Archivechế độ. Nếu không có bất kỳ điều chỉnh Emacs / elisp nào (người dùng mới thường lo sợ), bạn sẽ thấy chi tiết tệp như từ zipinfo: chế độ, độ dài, ngày, thời gian

Sau đó, bạn sẽ có thể mở các tệp trong bộ đệm và thậm chí lưu các thay đổi của bạn trở lại lưu trữ, với các phím tắt tiêu chuẩn:

  • Nhập tên tệp trong danh sách để mở
  • Chỉnh sửa và lưu với Ctrl-x Ctrl-s
  • Giết bộ đệm Ctrl-kđể quay lại lưu trữ bộ đệm và tiếp tục

Khi ở trong Zip-Archivebộ đệm, hãy sử dụng Ctrl-h mđể nhận tất cả các phím tắt có sẵn trong Chế độ xem trợ giúp.

Hy vọng điều này có thể dẫn bạn khám phá các tính năng tuyệt vời của Emacs



0

Tôi đã tìm thấy less archive.zipcách dễ nhất để làm điều này.


2
less archive.zip không hiển thị nội dung của tệp nén, nó chỉ hiển thị nội dung của tệp lưu trữ được nén .
karel

Cảm ơn bạn đã làm rõ, @karel
RobertMyles

Tôi nghĩ rằng những gì bạn đang thực sự cố gắng sẽ giống như câu trả lời của danielcraigie.
karel

-1

Nếu tệp được bao gồm trong kho lưu trữ zip, bạn chỉ cần trích xuất tệp đó từ kho lưu trữ (có thể phụ thuộc vào loại lưu trữ, một số lưu trữ không thể trích xuất tệp riêng biệt)


Có, nhưng bạn có thể trích xuất ra thiết bị xuất chuẩn và đường ống ngay vào máy nhắn tin.
Peter Cordes

Đây không phải là một câu trả lời kỹ thuật, nhiều khả năng là từ một chính trị gia hoặc luật sư. Xin hãy cụ thể hơn! (hiển thị lệnh chẳng hạn)
Hola Soy Edu Feliz Navidad
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.