Ich habe eine Reihe von RAR-Dateien wie folgt gespeichert:
/torrents/televisionshowS01E0$X/nameoftelevisionshow.rar
wobei $X eine Variable ={0,1,2,...,12} ist
Ich möchte sie mit einem einzigen Befehl in ein einziges Ausgabeverzeichnis extrahieren ( /publicshare/
).
Folgendes habe ich bisher:
for i in find /torrents/televisionshowS01*/ -name *.rar; do unrar x "$i" /publicshare/;done
aber ich erhalte das folgende Ergebnis:
Cannot open /torrents/televisionshowS01E01/.rar
No such file or directory
No files to extract
Allerdings gibt „find /torrents/televisionshowS01*/ -name *.rar“ die richtigen Pfade zurück.
Antwort1
Oh, als ich mir das Bashscript anderer Leute ansah, wurde mir klar, dass ich Backticks um den Find-Befehl setzen sollte. So,
for i in `find /torrents/televisionshowS01*/ -name *.rar`; do unrar x "$i" /publicshare/; done
und dann funktionierte der Befehl wie gewünscht. Allerdings bin ich mir immer noch nicht sicher, WARUM genau. Ich gehe davon aus, dass sie so funktionieren wie Klammern in der Mathematik. Offensichtlich hat es dieses Mal funktioniert, aber hätte ich aus praktischen Gründen Backticks um ? setzen sollen unrar x "$i" /publicshare/
?
Danke