Hallo, danke für den hilfreichen Artikel: Es gibt aber ein halbes Problem : Der Befehl, wie im Artikel aufgelistet, ist sehr hilfreich, mit dem man in den Unterordnern die Dateien ebenfalls umwandelt:
1 | find . -type d -exec sh -c '(cd {} && for i in *.wav; do lame -h -b 128 "$i" "`basename "$i" .wav`".mp3; done)' ';' |
Das Problem deses Befehls liegt darin, dass dies nur für Ordner gilt, die aus Namen in einem Stück stehen,also ohne Leerzeichen zu beinhalten. Diejenigen Ordner, die Leerzeichen im Namen haben, werden ignoriert, Terminal gibt z.B. das aus:
System error. Could not open sound file "*.wav". sh: 1: cd: can't cd to ./Büchner sh: 1: Majakowskij: not found sh: 1: cd: can't cd to ./Shakespeare sh: 1: cd: can't cd to ./Goethe sh: 1: Villon: not found sh: 1: cd: can't cd to ./Wiedersehen
Wobei die jeweiligen Ordner "Büchner & Majakowski", "Shakespeare Hamlet" und "Goethe & Villon" hießen. Scheinbar macht das System nach diesem Befehl "cd" zu "Büchner", und schneidet "& Majakowski" ab, bzw. " Hamlet"; und kann in diesen Ordner nicht wechseln.
Wie kann man den Befehl ergänzen, damit auch andere ahnungslose Leser nicht auf diese Fehlerausgabe treffen? Bzw. wo kann man es lernen, solch einen Befehl zu kreieren, leider ist auf der Wiki-Seite von "find" nicht so viel zu finden... Vielen Dank.
Moderiert von noisefloor:
Abgetrennt vom Wikiartikel zu LAME, weil Supportanfrage. Neu gewonnenes Wissen darf aber gerne ins Wiki zurück fließen ☺