Gibt es eine Möglichkeit, alle Dateien in einem Verzeichnis mit doppelten Dateinamen zu finden, unabhängig von der Schreibweise (Groß- und/oder Kleinschreibung)?
Akzeptierte Antwort:
Wenn Sie GNU-Dienstprogramme (oder zumindest einen Satz, der mit nullterminierten Zeilen umgehen kann) zur Verfügung haben, hat eine andere Antwort eine großartige Methode:
find . -maxdepth 1 -print0 | sort -z | uniq -diz
Hinweis:Die Ausgabe enthält nullterminierte Zeichenfolgen. das Werkzeug, das Sie zur Weiterverarbeitung verwenden, sollte damit umgehen können.
In Ermangelung von Tools, die mit nullterminierten Zeilen umgehen, oder wenn Sie sicherstellen möchten, dass Ihr Code in Umgebungen funktioniert, in denen solche Tools nicht verfügbar sind, benötigen Sie ein kleines Skript:
#!/bin/sh
for f in *; do
find . -maxdepth 1 -iname ./"$f" -exec echo ; | wc -l | while read count; do
[ $count -gt 1 ] && echo $f
done
done
Was ist das für ein Wahnsinn?
In dieser Antwort finden Sie eine Erklärung der Techniken, die dies für verrückte Dateinamen sicher machen.