====== bash: Groß-/Kleinschreibung von Dateinamen ändern ====== Beim Umzug der [[:bi-files|BI-Liste]] stieß ich auf ein Problem: der Mediamanager meines cms erkennt nur Dateinamen in Kleinschreibung. In den Dateinamen der Liste treten Groß- und Kleinbuchstraben jedoch bunt gemixt auf. Also was tun? Mehr als 100 Dateinamen im Windows-Explorer umbenennen? Nö. Die [[wpde>bash|Bash]] kann das viel effizienter: Ein kurzes Stöbern bei [[http://www.dejanews.com|dejanews]] brachte die (für mich) verblüffend einfache Lösung. ====== Die Lösung ====== for f in *; do mv $f "$(echo "$f" | tr A-Z a-z)"; done ====== Ein paar Details ====== * Zwischen //for// und //done// wird eine so genannte for-[[wpde>Schleife (Programmierung)|Schleife]] definiert * Die Schleife läuft für jede gefundene Datei (//*//) einmal durch und speichert deren Namen jeweils in der Variablen $f. * Jede Datei wird mittels //mv// umbenannt und zwar von //$f// nach //"$(echo "$f" | tr A-Z a-z)"//. * Letzterer Ausdruck sendet den Dateinamen (//echo $f//) per [[wpde>Pipe (Informatik)|Pipe]] an den Befehl [[http://www.gnu.org/software/textutils/manual/textutils/html_node/textutils_38.html#SEC38|tr]], welcher alle Großbuchstaben (//A-Z//) in Kleinbuchstaben (//a-z//) umwandelt. * Fertig!