Baca konten file zip tanpa ekstraksi?


153

Bagaimana saya bisa membaca konten file tertentu dalam arsip tanpa mengekstrak .zip yang ada di dalamnya? Saya menggunakan baris perintah Linux.

Pertanyaan sebelumnya bertanya tentang melihat direktori arsip. Tetapi bagi saya itu tidak cukup hanya dengan melihat daftar file dalam arsip, saya perlu melihat isi file dalam arsip.



@ fixer1234 (dan lainnya): Pertanyaan yang ditautkan bertanya, "Bagaimana saya bisa melihat file dalam arsip ZIP?" AFAIC, itu pertanyaan yang sama seperti "Bagaimana saya bisa melihat isi file ...?" orang-orang yang menjawab pertanyaan itu menafsirkannya sebagai "Bagaimana saya bisa melihat direktori arsip?" Namun, jawaban Gilles (tentu saja) dan jawaban Rajasekhar Tolety (tampaknya) untuk pertanyaan itu memberikan jawaban untuk pertanyaan ini.
Scott

1
@Scott, mungkin kita harus mencari cara untuk menggabungkan dua pertanyaan sehingga kedua topik tercakup dalam satu, atau memfokuskan kembali yang lain untuk secara jelas tentang direktori dan kemudian memindahkan jawaban antara kedua tempat untuk mencocokkan pertanyaan. Saat ini, keduanya adalah kecelakaan.
fixer1234

@ fixer1234: Saya setuju, sampai titik tertentu. Para moderator selalu memberi tahu kami bahwa duplikat adalah hal yang baik, karena mereka memberikan permukaan paparan yang lebih besar ke mesin pencari (yaitu, lebih banyak peluang bahwa pencarian akan menemukan salah satu pertanyaan). Tapi ada intinya: jika pengguna menemukan salah satu pertanyaan, dan hubungannya tidak jelas (dan tidak ada yang melihat daftar pertanyaan "Tertaut" dan "Terkait" - setidaknya bukan pengikut acak hasil pencarian), maka pengguna hanya menemukan sebagian kecil dari jawaban. DavidPostill memberikan suara terakhir untuk membuka kembali pertanyaan ini; mungkin Anda harus berbicara dengannya.
Scott

@Scott - Mengingat bahwa penanya menandai jawaban "Bagaimana saya bisa melihat direktori arsip?" Diterima, saya harus berpikir itu kemungkinan maksud dari pertanyaan. Sayangnya, ini diucapkan secara ambigu sehingga bisa berarti interpretasi mana pun.
M. Justin

Jawaban:


198

unzip -l archive.zip daftar isi arsip ZIP untuk memastikan file Anda ada di dalam.

Gunakan -copsi untuk menulis konten file bernama ke stdout (layar) tanpa harus mengompres seluruh arsip.

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

Untuk operasi semacam ini saya selalu menyalurkan output less, jika tidak seluruh file akan terbang ke layar sebelum Anda bisa membacanya.

BTW zcat sangat bagus untuk melihat konten file .gz tanpa harus mengompresnya terlebih dahulu.


8
Paling tidak di Ubuntu, sedikit yang entah bagaimana dikonfigurasi untuk melakukan ini secara default - jadi less archive.zipsebenarnya menunjukkan daftar file.
aviv

1
bzcat untuk melihat konten file bz2 tanpa harus mengompresnya lebih dulu ...
Justin E

3
unzip -c juga menunjukkan nama file dan beberapa pesan tambahan (mengirimnya ke stdout). Menggunakan -p sebagai gantinya hanya mengirim file dalam format biner. Itu lebih berguna untuk pemipaan
Juan Calero

Dengan $LESSOPENset ke lesspipe, Anda bisa less foo.gzmelihat konten yang dikompresi . (@aviv: ini adalah hal yang sama yang memungkinkan less foo.zipuntuk menyalurkan unzip -l foo.zipke dalam dirinya sendiri).
Peter Cordes

unzip -c archive.zip '*' | lessmelakukan apa yang saya cari: mengecek isi arsip zip.
Peter Cordes

4

zipinfoadalah alat lain yang mungkin Anda gunakan, ini berguna jika Anda berada di sistem terkunci di mana unziptidak diperbolehkan.


4

Jika Anda hanya ingin melihat gambar di dalam arsip, Anda dapat menggunakan Comix atau yang lebih baru MComix untuk melihat gambar di dalam .zip, .rar, .cbr, dan .cbzfile tanpa penggalian.


2

Mulai Emacsdi baris perintah dan buka file zip Anda dengan Zip-Archivemode. Tanpa penyetelan Emacs / elisp (pengguna baru umumnya takut), Anda akan melihat detail file seperti dari zipinfo: mode, panjang, tanggal, waktu

Kemudian, Anda akan dapat membuka file dalam buffer dan bahkan menyimpan perubahan Anda kembali ke arsip, dengan cara pintas standar:

  • Masukkan nama file dalam daftar untuk membukanya
  • Edit dan simpan dengan Ctrl-x Ctrl-s
  • Bunuh buffer Ctrl-kuntuk kembali ke buffer arsip dan teruskan

Saat dalam Zip-Archivebuffer, gunakan Ctrl-h muntuk mendapatkan semua pintasan yang tersedia di Tampilan Bantuan.

Semoga ini dapat mengarahkan Anda untuk menemukan fitur luar biasa Emacs



0

Saya telah menemukan less archive.zipcara termudah untuk melakukan ini.


2
less archive.zip tidak menampilkan konten file zip, itu hanya menunjukkan isi arsip zip .
karel

Terima kasih atas klarifikasi, @karel
RobertMyles

Saya pikir apa yang sebenarnya Anda coba lakukan akan sama dengan jawaban danielcraigie.
karel

-1

Jika file tersebut termasuk dalam arsip zip, Anda hanya perlu mengekstrak file itu dari arsip (mungkin tergantung pada jenis arsip, beberapa arsip tidak dapat mengekstrak file secara terpisah)


Ya, tetapi Anda dapat mengekstraksi ke stdout dan menyalurkan langsung ke pager.
Peter Cordes

Ini bukan jawaban teknis, lebih mungkin dari politisi atau pengacara. Harap lebih spesifik! (perlihatkan perintah misalnya)
Hola Soy Edu Feliz Navidad
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.