कमांड लाइन में अतिरिक्त जानकारी के बिना ज़िप में फ़ाइलों को कैसे सूचीबद्ध करें


37

मेरी बैश कमांड लाइन में, जब मैं उपयोग करता 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"

लेकिन यह लंबी है और त्रुटि के लिए प्रवण है (उदाहरण के लिए इस सूची में एक फ़ाइल नाम संग्रह को छोड़ दिया जाएगा)

क्या अनज़िप-एल के साथ कोई अन्य विकल्प है (मैंने अनज़िप मैन पेज की जाँच की और ऐसा नहीं पाया) या ऐसा करने के लिए कोई अन्य उपकरण?

मेरे लिए यह महत्वपूर्ण है कि संग्रह को वास्तव में अनज़िप न करें, लेकिन केवल यह देखने के लिए कि कौन सी फाइलें अंदर हैं।


स्वीकृत उत्तर इससे बहुत बेहतर है; लेकिन मैं यह कहना चाहता हूं कि एकाधिक के साथ कुछ भी grepएक Awk स्क्रिप्ट में बदला जा सकता है, आमतौर पर बहुत सुधार के साथ। awk 'NR >3 { if (/^ *---/) exit 0; print }'पहली तीन पंक्तियों के साथ-साथ पाद लेख को भी ट्रिम करेगा, और केवल फ़ाइल नाम (संकेत:) को आसानी से निकालने की पहुंच के भीतर होगा print substr($0, 29)
ट्रिपलआई

हां, मैं पूरी तरह से सहमत हूं, यही कारण है कि मैं उस विशिष्ट प्रश्न को पूछता हूं: एक बेहतर और व्यवहार्य समाधान।
рüффп

जवाबों:


55
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

धन्यवाद शक्तिशाली sed ... मैं जो चाहता था; इसके अलावा zipinfo उपकरण दिलचस्प है, मुझे यह नहीं पता था।
рüффп

क्या निर्देशिका को अनदेखा करने का एक तरीका है? unzip -Z1 zipfile.zipहोगा उत्पादन: निर्देशिका / और निर्देशिका / file.extension (नोट: के साथ निर्देशिका नाम है। संभावना है, इसलिए एक | grep .काम नहीं करता है)
मैट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.