Dateinamen vergleichen, Doubletten finden

Datum: 2004-09-01
Quelle: suse-linux

Worum ging es?

Nach einem unvorsichtigen rsync fanden sich in einem Verzeichnis identische Dateien, die sich nur in der Schreibweise (mal groß, mal klein) unterschieden. Diese Doubletten sollten gefunden und gelöscht werden.

Code
ls *[A-Z]* | while read uc_file; do
  lc_file="`echo \"$uc_file\" | tr '[:upper:]' '[:lower:]'`"
  test -f "$lc_file" && rm "$lc_file"
done
Beschreibung

Das Globbing Pattern *[A-Z]* passt auf alle Dateien im Verzeichnis, deren Name mindestens einen Großbuchstaben enthält. Daraus wird ein Dateiname generiert, der nur Kleinbuchstaben enthält. Existiert diese Datei, dann wird sie gelöscht.