Linux 15.070 Themen, 107.540 Beiträge

Dateiname REKURSIV in Kleinbuchstaben umwandeln

stillfreakin / 8 Antworten / Baumansicht Nickles

hallo,
in der folgenden Nickles linux-faq habe ich folgendes hierzu gefunden:
http://www.nickles.de/go!linux/faq/index.php3?cmd=lt&t=198

for name in * ; do mv -i $name `echo $name | tr [A-ZÄÖÜ] [a-zÄÖÜ]` ; done

Leider funktioniert jenes welches nicht rekursiv.
Kann mir da jemand weiterhelfen?

----Die Kunst des Seins ist das Bewusste erleben
bei Antwort benachrichtigen
hasw stillfreakin „Dateiname REKURSIV in Kleinbuchstaben umwandeln“
Optionen

for file in `find . -type f`; do mv $file `echo $file | tr 'A-Z' 'a-z'`; done

bei Antwort benachrichtigen
stillfreakin hasw „for file in find . -type f do mv file echo file tr A-Z a-z done“
Optionen

vielen dank für die hilfe, leider klappt es nicht so ganz...
No such file or directory!

----Die Kunst des Seins ist das Bewusste erleben
bei Antwort benachrichtigen
Klaus_T stillfreakin „Dateiname REKURSIV in Kleinbuchstaben umwandeln“
Optionen

Lass bei deinem ersten Aufruf das '-i' und die Umlaute weg. dann geht es.

Bye, Klaus

bei Antwort benachrichtigen
stillfreakin Klaus_T „Lass bei deinem ersten Aufruf das -i und die Umlaute weg. dann geht es. Bye, Klaus“
Optionen

hi Klaus,

Danke, aber ich glaube hier gibt es ein kleines Mißverständniss!
Die erste Variante funst, aber nicht rekursiv...

----Die Kunst des Seins ist das Bewusste erleben
bei Antwort benachrichtigen
Klaus_T stillfreakin „hi Klaus, Danke, aber ich glaube hier gibt es ein kleines Mißverständniss! Die...“
Optionen

Ach so. Dann versuch mal folgendes:
find . | sort -r | while read file; do mv $file `dirname $file`/`basename $file | tr "[:upper:]" "[:lower:]"`;done
Das muesste klappen.

Bye, Klaus

bei Antwort benachrichtigen
stillfreakin Klaus_T „Ach so. Dann versuch mal folgendes: find . sort -r while read file do mv file...“
Optionen

hi Klaus,

vielen Dank für den Tipp. Hat leider auch nicht so richtig gefunst.

Meine Eingabe:
daserva 1.0 # find . | sort -r | while read file; do mv $file `dirname $file`/`basename $file | tr "[:upper:]" "[:lower:]"`;done

Folgende Fehlermeldungen:
dirname: too many arguments
mv: when moving multiple files, last argument must be a directory
mv: `.' and `././.' are the same file

----Die Kunst des Seins ist das Bewusste erleben
bei Antwort benachrichtigen
Klaus_T stillfreakin „hi Klaus, vielen Dank für den Tipp. Hat leider auch nicht so richtig gefunst....“
Optionen

Mmh, merkwuerdig. Bei mir geht es. Hast du auch exakt die Leerzeichen beachtet?

Bye, Klaus

bei Antwort benachrichtigen
stillfreakin Klaus_T „Mmh, merkwuerdig. Bei mir geht es. Hast du auch exakt die Leerzeichen beachtet?...“
Optionen

Ja, habs per copy and paste über putty und ssh eingefügt!

----Die Kunst des Seins ist das Bewusste erleben
bei Antwort benachrichtigen