Ich benutze Fedora 17 und bash als meine Shell. Ich habe eine bestimmte Zip-Datei, die nur einen Ordner im Stammverzeichnis enthält. Dh beim Entpacken der Zip-Datei sehe ich folgendes:
> unzip myzip.zip
> ls
myzip.zip folderThatWasInsideZip
Angenommen, die ZIP-Datei enthält nur einen Ordner. Wie kann ich den Namen des Hauptordners in der ZIP-Datei ermitteln , ohne die ZIP-Datei zu entpacken?
Ich suche einen Einzeiler, mit dem ich so etwas machen kann:
> <command> myzip.zip
folderThatWasInsideZip
Ich weiß, dass es Möglichkeiten gibt, alle Dateien in der Zip-Datei mit aufzulisten less
, aber das listet alle Dateien in den Unterverzeichnissen usw. auf. Ich möchte nur den Namen des einen Ordners wissen. Ich weiß, ich vermisse etwas Grundlegendes ..
Antworten:
Dieser Befehl scheint zu tun, was Sie wollen:
Oder mit GNU sed:
quelle
unzip
undunzip -l
zeigt an, dass dieinflate_block()
Funktion nicht mit aufgerufen wird-l
, dh die Datei wird nicht dekomprimiert, nur Metadaten werden gelesen.unzip -Z
Ruft den Zipinfo-Modus auf , was bedeutet, dass Sieunzip -Z -1 myzip.zip | head -1
das gleiche Ergebnis erzielen können , aber es ist viel knapperquelle