bash: Groß-/Kleinschreibung von Dateinamen ändern

Beim Umzug der 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 Bash kann das viel effizienter: Ein kurzes Stöbern bei 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-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 Pipe an den Befehl tr, welcher alle Großbuchstaben (A-Z) in Kleinbuchstaben (a-z) umwandelt.
  • Fertig!