ดูรายการไฟล์ในไฟล์ ZIP บน Linux


407

ฉันจะดูรายการไฟล์ในไฟล์ ZIP ได้อย่างไรโดยไม่ต้องคลายการบีบอัด


เป็นไปได้หรือไม่ที่จะทำเช่นเดียวกันสำหรับไฟล์เก็บถาวรยูนิกซ์ปกติ? (tar / gzip / bz2 / ฯลฯ )
ThorSummoner

tar tvf ถ้า. gz เพิ่ม z สำหรับ bz2 เพิ่ม j มากขึ้นตรวจสอบหน้าคน
UtahJarhead

คำตอบ:


469

lessยูทิลิตี้ที่มีความสามารถของการแอบเข้าไปในzipที่เก็บ ในความเป็นจริงถ้าคุณดูผลลัพธ์ของunzip -l zipfileและless zipfileคุณจะพบว่าพวกเขาจะเหมือนกัน


98
โปรดทราบว่าless zipfileใน MacOS-X จะแสดงเนื้อหาไฟล์ไบนารีดังนั้นคุณจะเห็นขยะจำนวนมากแทนเนื้อหาของไฟล์ซิป จากนั้นคุณควรเลือก `` ùnzip -l zipfile```
heiglandreas

10
@ayaz แสดงรายการไฟล์ zip น้อยกว่าระบบใด ฉันเห็นความคิดเห็นที่บอกว่ามันไม่ทำงานบน MAC, Ubuntu และที่นี่ฉันใช้ Debian Debian ยังแสดงขยะไบนารีด้วย
ดร. Beco

12
ใน Ubuntu view [zipfile]ลอง
ซามูเอลแลมปา

4
ไม่ถูกต้อง. unzip -l ทำงานได้ดีในการแสดงไฟล์ที่อยู่ในไฟล์ zip แต่น้อยกว่านั้นให้เนื้อหาไบนารีในหลาย ๆ กรณีและแน่นอนว่าเป็นเรื่องยุ่งเหยิง
Arturas M

17
คุณต้องการตัวlesspipeช่วยติดตั้งเพื่อเปิดใช้งานการสนับสนุนไฟล์ zip น้อยกว่านี้ เป็นมาตรฐานในระบบ Linux หลายระบบ แต่ไม่ใช่ใน OSX แต่คุณสามารถติดตั้งได้ด้วยการชง
pimlottc

112

ลอง unzip -l files.zip | less

นอกจากนี้ดูman unzipตัวเลือกเพิ่มเติม


6
คุณสามารถข้ามไปป์เพื่อlessคำสั่ง มันเป็นความคิดที่ดีในการเก็บไฟล์ขนาดใหญ่
omar

65

ในการแสดงรายการเนื้อหาของ zip:

zipinfo -1 myzipfile.zip

สำหรับรายละเอียดผลลัพธ์:

zipinfo myzipfile.zip

7
คำตอบที่ดีคุณไม่จำเป็นต้องแยกเอาท์พุทเพียงเพื่อให้ได้ชื่อไฟล์
Antoine Pelisse

34

โปรดใช้

vim ZIP_FILE_NAME

สำหรับเดียวกัน นี่คือง่าย ๆ และง่ายต่อการจดจำอย่างใดอย่างหนึ่ง


5
นิสัยดีนี่ยังอนุญาตให้เปิดไฟล์แต่ละไฟล์ในไฟล์เก็บถาวรโดยไม่ต้องทำการคลายซิป
user3885927

ค่อนข้างคาดไม่ถึงและมีประโยชน์มาก! ขอบคุณ!
ปิแอร์

ที่จริง: สิ่งนี้จะไม่ทำงานหากunzipไม่ได้ติดตั้งบนระบบ นอกจากนั้นน่ากลัว!
sjas

13

คุณสามารถทำให้ซิปปรากฏเป็นไดเรกทอรี (ในที่ที่คุณใช้cd, lsฯลฯ ) โดยการติดตั้งกับฟิวส์ซิประบบแฟ้มเสมือน

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

อีกประการหนึ่งที่เกี่ยวข้องFUSEระบบแฟ้มเป็นAVFS มันสร้างมุมมองของลำดับชั้นไดเรกทอรีทั้งหมดของคุณที่เก็บถาวรทั้งหมดมีไดเรกทอรีที่เกี่ยวข้อง (ชื่อเดียวกันกับ#tacked ในตอนท้าย) ที่ปรากฏขึ้นเพื่อเก็บเนื้อหาที่เก็บถาวร

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

ตัวจัดการไฟล์ที่ทันสมัยจำนวนมาก (เช่น Nautilus, Dolphin) แสดงเนื้อหาที่เก็บถาวรอย่างโปร่งใส

AVFS เป็นแบบอ่านอย่างเดียว Fuse-zip เป็นการอ่าน - เขียน แต่ระวังว่าการเปลี่ยนแปลงจะถูกเขียนไปยังไฟล์ zip ในเวลา unmount เท่านั้นดังนั้นอย่าเริ่มอ่านไฟล์เก็บถาวรที่คาดว่าจะถูกแก้ไขจนกว่าจะfusermount -uส่งคืน


นีซไจล์ส ขอบคุณ อย่างรวดเร็ว: หนึ่งสามารถเพิ่มไฟล์โดยเพียงแค่ "cp" ไอเอ็นจีไปยังไดเรกทอรีหรือไม่
ดร. เบโก

@DBBeco พร้อมฟิวส์-zip ใช่ ด้วย avfs ไม่มี
Gilles

9

อย่างน้อยใน Ubuntu คำสั่งที่ง่ายที่สุดคือ:

view [zipfile]

จะเป็นการเปิดรายชื่อไฟล์ในโปรแกรมแก้ไขข้อความมาตรฐาน (nano, vim และอื่น ๆ )


2

จริงunzip -l file.zip | grep "search"หรือถ้าคุณมีไฟล์จำนวนมาก

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

อัปเดต: เปลี่ยนจาก '-p' เป็น '-l' เพื่อค้นหาไฟล์


2

หากคุณเน้นกราฟิกมากขึ้น Midnight Commander ยังสามารถเรียกดูไฟล์ซิปได้ราวกับว่าเป็นไดเรกทอรีปกติ


1

โซลูชันที่ครอบคลุมยิ่งขึ้น: vim || emacs

คำตอบก่อนหน้านี้โดย @kinORnirvana ฉันชอบที่จะสร้างไฟล์ที่มีเนื้อหาของไฟล์ zip

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

อย่างไรก็ตามฉันขอแนะนำเสียงเรียกเข้าหรือemacs (ไม่ใช่นาโน) หากคุณต้องการเรียกดูไฟล์เก็บถาวรหรือแม้กระทั่งเพื่อดูเนื้อหาของไฟล์ที่อยู่ภายใน

vim archive.zip

วิธีนี้ใช้ได้กับรูปแบบไฟล์เก็บถาวรอื่น ๆ ด้วย:

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

ด้วยเสียงเรียกเข้าหรือemacsคุณสามารถ:

  • เรียกดูโครงสร้างไดเรกทอรีของไฟล์เก็บถาวร
  • ดูเนื้อหาของไฟล์ภายในไฟล์เก็บถาวร

ป้อนคำอธิบายรูปภาพที่นี่


0

(yaa) ยังมีคำตอบอื่น:

ชื่อแทนคำสั่งนี้:

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

และคุณสามารถใช้vless file.zipเพื่อใช้ประโยชน์จากvi(หรือvim) สคริปต์ที่น้อยลง

(ยังดีที่จะทดแทนน้อยลงเพื่อให้คุณมีสีได้)


1
less -R ไม่สนับสนุนสี ANSI
Sylvain Leroux
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.