Dateien umbenennen

Datum: 2001-05-27
Quelle: suse-linux

Worum ging es?

Der Befehl mmv (multiple move) kann viele Aufgaben erledigen, die sonst nur über ein Script zu steuern wären. Die folgende Schleife realisiert jedoch das Umbenennen von Dateinamen mit Großbuchstaben in Kleinbuchstaben, ohne Dateien mit gleichem Namen zu überschreiben.
Wenn es nicht nur die deutschen Umlaute sein sollen, die gefunden werden, dann kann man sich ein Pattern wie im 2. Teil des Codes basteln.

Code
test "*[A-ZÄÖÜ]*" = '*[A-ZÄÖÜ]*' && exit 0
for i in *[A-ZÄÖÜ]* ; do
  n="`echo \"$i\" | tr [:lower:] [:upper:]`"
  test -f "$n" && echo "$n gibt es schon / already exists" || mv "$i" "$n"
done
# Muster fuer alle Sonderzeichen / pattern for all special characters
pattern=A-Z
for i in `seq 161 255`; do
  oct=`printf "%c%03o" "\\\" $i`
  pattern=$pattern`echo -e "$oct"`
done
for i in *[$pattern]*; do
# usw. siehe oben / go on like shown above
Beschreibung

Der vorauseilende test soll den Fall abfangen, dass es unter Umständen gar keine zum Suchmuster passende Datei gibt. Das Script stammt noch aus Vor-UTF8-Zeiten, kann also so nur mit ISO-Zeichensätzen umgehen.