Um alle Dateien und Ordner in einem Verzeichnis, die Großbuchstaben enthalten, in den entsprechenden Kleinbuchstaben umzubenennen, kannst du den folgenden Befehl in einer Bash-Shell verwenden. Es wird empfohlen, dies mit Vorsicht zu tun, da es die Namen der Dateien und Ordner dauerhaft ändert.

Hier ist ein Beispiel:

find . -depth -name '*[A-Z]*' -exec rename 'y/A-Z/a-z/' {} +

Erläuterung:

  • find .: Durchsucht das aktuelle Verzeichnis (.) und alle Unterverzeichnisse.
  • -depth: Stellt sicher, dass die Dateien in den Unterverzeichnissen vor den Verzeichnissen selbst umbenannt werden (verhindert Probleme mit der Umbenennung von Verzeichnissen, die noch nicht bearbeitet wurden).
  • -name '*[A-Z]*': Sucht nach Dateien und Verzeichnissen, deren Namen Großbuchstaben enthalten.
  • -exec rename 'y/A-Z/a-z/' {} +: Führt für jedes gefundene Element den rename-Befehl aus, der die Großbuchstaben in Kleinbuchstaben umwandelt.

Wichtig:

  • Stelle sicher, dass du in dem Verzeichnis bist, in dem du diese Operation durchführen möchtest.
  • Erstelle ggf. vorher ein Backup der Dateien, um unerwünschte Änderungen zu vermeiden.
  • Der Befehl rename könnte je nach Linux-Distribution unterschiedlich implementiert sein. Überprüfe, ob die oben verwendete Syntax mit deiner Version von rename kompatibel ist. In einigen Systemen könnte es auch nötig sein, die prename-Version oder renameutils zu verwenden.

Falls der rename-Befehl auf deinem System nicht die gewünschte Funktionalität hat, könntest du auch eine Schleife verwenden:

for file in $(find . -name '*[A-Z]*'); do
    mv "$file" "$(echo "$file" | tr 'A-Z' 'a-z')"
done

Diese Schleife findet alle Dateien und Ordner mit Großbuchstaben und benennt sie in Kleinbuchstaben um.