Rekursiv Dateien entpacken und dann löschen der ursprünglichen Datei aus und entpackt die Dateien aus der shell

Ich habe bisher herausgefunden, wie es zu benutzen finden rekursiv entpacken Sie alle Dateien:

find . -depth -name `*.zip` -exec /usr/bin/unzip -n {} \; 

Aber ich kann nicht herausfinden, wie entfernen Sie die zip-Dateien ein zu einer Zeit nach der Extraktion. Hinzufügen rm *.zip-in -a-exec endet das löschen die meisten zip-Dateien in jedem Verzeichnis, bevor Sie extrahiert werden. Rohrleitungen, die über ein Skript mit dem rm-Befehl (mit -i aktiviert zum testen) Ursachen finden, nicht finden *.Reißverschlüsse (oder zumindest das ist, was es beschwert sich). Es ist, natürlich, Leerzeichen in vielen der Dateinamen aber an dieser Stelle syntaxing in einem sed-Befehl zum hinzufügen _'s ist ein wenig über mich. Danke für Eure Hilfe!

  • Was meinst du recursively -, zip-in zip? Für komplexe Aufgaben, ich persönlich würde schreiben ein helper-Skript (sagen unzip-and-rm.sh) und -exec das Skript.
  • Ich entschuldige mich, wenn ich war nicht klar genug. Der Verzeichnisbaum geht von mindestens sechs oder sieben Ebenen nach unten mit den zip-Dateien, die auf den tiefsten Ebenen. Jede zip-Datei enthält zwei Dateien, und ich möchte Euch die anderen Dateien unberührt, sondern entfernen Sie dann die zip-Datei. Meine ursprüngliche versuchen hier, war nur zum Stopfen unzip-and-rm in einem script -exec, aber es nicht zu finden, alle zip-Dateien, und ich vermute, es liegt an den Leerzeichen im Dateinamen.
  • Ich weiß nicht, warum it fails to find any zip files ich kann es nicht glauben, könnten Sie fügen der Befehlszeile?
  • Bitte, werfen Sie einen Blick auf die Antwort an stackoverflow.com/a/51841035/2457251, wenn Sie möchten mehr Einblicke. Zum Beispiel können Sie den Befehl hinzufügen, der rm $f, mv $f dem .sh Datei - oder fügen Sie einen beliebigen anderen Befehl, wenn Sie mögen.
InformationsquelleAutor Ben | 2011-04-08
Schreibe einen Kommentar