entpacken Sie spezifische Erweiterung nur
Ich habe ein Verzeichnis mit zip-Archiven enthalten .jpg -, .png -, .gif-Bilder. Ich will zu entpacken jedes Archiv nimmt die Bilder nur, und setzen Sie Sie in einen Ordner mit dem Namen des Archivs.
Also:
files/archive1.zip
files/archive2.zip
files/archive3.zip
files/archive4.zip
Öffnen archive1.zip - nehmen sunflower.jpg, rose_sun.gif. Machen Sie einen Ordner mit Dateien/archive1/und fügen Sie die Bilder in diesen Ordner, so files/archive1/folder1.jpg, files/archive1/rose_sun.gif. Tun Sie dies für jedes Archiv.
Ich weiß wirklich nicht, wie dieses getan werden kann, sind alle Vorschläge willkommen. Ich habe über 600 Archive und eine automatische Lösung wäre ein Lebensretter sein, vorzugsweise eine linux-Lösung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Etwas entlang der Linien von:
Dies ist getestet und mit Leerzeichen in Dateinamen (beide zip Dateien und extrahiert Dateien). Sie müssen möglicherweise zu Kollisionen, wenn die zip-Datei hat den gleichen Dateinamen in verschiedenen Verzeichnissen (kann man nicht vermeiden, wenn du gehst zu glätten die directory-Struktur).
In Kurzen
Können Sie dies mit einer one-liner suchen + entpacken.
Im Detail
unzip
können Sie die Dateien angeben, die Sie möchten:Sowie
-d
Zielverzeichnis:Verbinden das mit einer
find
, und Sie können extrahieren Sie alle Bilder in alle Reißverschlüsse:Mit
unzip -j
junk die Extraktion des zip-interne Verzeichnis-Struktur, wir tun es alle in einem einzigen Befehl. Dies gibt Ihnen die flache Bild, Liste, getrennt durch Reißverschluss-Namen, die Sie wünschen, als ein one-liner.Einschränkung ist, dass
unzip -d
nicht mehr als eine neue Ebene der Unterverzeichnisse, so dass nurmkdir images
ersten. Genießen.7zip dies tun können, und hat eine Linux-version.
(Es gerade getestet, es funktioniert.)
Schreiben Sie ein Programm mit einem zip-Bibliothek. Wenn Sie Mono, die Sie verwenden können,DotNetZip.
Würde der code wie folgt Aussehen:
Perl - Archive-Zip ist eine gute Bibliothek zum zippen/Entzippen.
Hier ist mein nehmen auf die erste Antwort...
oder wenn Sie möchte nur, um über den normalen unzip-Befehl...
Habe ich noch nicht getestet, aber es sollte funktionieren... oder etwas entlang dieser Linien. Definitiv effizienter als die erste Lösung. 🙂
Hoffe, das hilft!