Frage Wie kann ich den Inhalt eines Zip-Archivs erfassen, sondern nur die erste Ebene?


Ich habe eine große Zip-Datei und möchte wissen, was darin enthalten ist. Ich weiß, ich kann rennen:

zipinfo file.zip

aber die Ausgabe ist zu ausführlich und es gibt a Menge von Dateien in den Unterverzeichnissen.

Ich möchte eine Liste der Dateien in der obersten Ebene sehen.

Beispiel

Wenn die normale Ausgabe ist:

-sh-3.2$ zipinfo file.zip
Archive:  file.zip   999999999 bytes   99999 files
-rw-r--r--  2.3 unx     3894 tx defN  3-Jul-11 13:11 file1
drwxr-xr-x  2.3 unx        0 bx stor 23-Feb-12 21:00 dir1/
-rw-r--r--  2.3 unx      269 tx defN 23-Oct-11 14:34 dir1/file2
drwxr-xr-x  2.3 unx        0 bx stor 25-Sep-11 03:53 dir1/subdir1/
...
drwxr-xr-x  2.3 unx        0 bx stor 23-Feb-12 21:00 dir2/
...

Ich möchte einen Befehl, der ausgegeben wird:

-sh-3.2$  <answer>
Archive:  file.zip   999999999 bytes   99999 files
-rw-r--r--  2.3 unx     3894 tx defN  3-Jul-11 13:11 file1
drwxr-xr-x  2.3 unx        0 bx stor 23-Feb-12 21:00 dir1/
drwxr-xr-x  2.3 unx        0 bx stor 23-Feb-12 21:00 dir2/
drwxr-xr-x  2.3 unx        0 bx stor 23-Feb-12 21:00 dir3/
...

6
2018-04-20 15:29


Ursprung




Antworten:


Sie können die Ausgabe mit grep filtern. Hier sage ich Grep, um alle Zeilen, die einen Schrägstrich '/' und alles nach dem Schrägstrich enthalten, zu verbergen:

zipinfo file.zip | grep -v "/."

4
2018-04-20 15:33



Beeindruckend! Danke für deine schnelle Antwort :) - Sapir
@dvb - vielen Dank ... eine Möglichkeit, die Größe der Verzeichnisse anzuzeigen? Es zeigt 0 für 'Länge' Spalte für viele Verzeichnisse, von denen ich weiß, dass sie Inhalte haben. - killjoy
@killjoy das ist eine eigene Frage wert. Sie erhalten möglicherweise zuerst eine Liste aller Dateien und Ordner mit ihrer Größe rekursiv und verwenden dann grep, um nur die erste Ebene zu erhalten - dvb