Rekursives Unrar mehrerer Ordner


8

Ich habe mehrere RAR-Archive, die auf mehrere Verzeichnisse verteilt sind, aber alle unter einem bestimmten Stammordner auf meinem Debian-basierten NAS. Könnte mir jemand helfen, ein einfaches Skript zu schreiben, das rekursiv in jeden Ordner verschoben, den Inhalt freigegeben, zum übergeordneten Ordner zurückkehrt und zum nächsten Verzeichnis wechselt? Damit:

cd Photos/Summer/Italy/
unrar e Italy.rar
wait
cd ../France/
unrar e France.rar
wait
etc...

Zeigen Sie also einfach auf den Stammordner "Fotos" und es blitzt durch ihn, ohne alles auf dem Weg zu belasten ...

ZB Verzeichnisstruktur:

*Photos:
 -Summer
  --Italy
   ---Italy.rar
   ---Italy.r01
   ---Italy.r02
  --France
   ---France.rar
   ---France.r01
   ---France.r02
 -Winter
  --Siberia
   ---Siberia.rar
   ---Siberia.r01
   ---Siberia.r02
  --Canada
   ---Snow.rar
   ---Snow.r01
   ---Snow.r02

Antworten:



3

unrarhat eine eingebaute Rekursion mit dem -r Recurse subdirectoriesSchalter.

unrar x -r <parent directory> Extrahiert den Inhalt aller Unterverzeichnisse unter <parent directory>in jedes Unterverzeichnis, wobei die in den .rarDateien vorhandene Verzeichnisstruktur beibehalten wird. Verwenden Sie eanstelle von, xwenn die Verzeichnisstruktur unerwünscht ist.


Dadurch werden die Dateien aus den Unterverzeichnisarchiven in extrahiert <parent directory>. Die extrahierten Dateien werden nicht im Unterverzeichnis neben den .rarDateien abgelegt. Es kommt also darauf an, welches Ergebnis gewünscht wird. Das OP war in diesem Fall nicht spezifisch. Manchmal ist Ihre Antwort für mich nützlich, aber manchmal brauche ich die findAntwort.
Cliff

1

Wenn Sie die nicht freigegebenen Fotos an ein anderes Ziel verschieben möchten, geben Sie das Ziel am Ende wie folgt ein:

find source_dir/ -name '*.rar' -execdir unrar e -o- {} /new/destination_dir/ \;

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.