C'è un modo per trovare tutti i file in una directory con nomi di file duplicati, indipendentemente dal maiuscolo (maiuscolo e/o minuscolo)?
Risposta accettata:
Se hai a disposizione utilità GNU (o almeno un set in grado di gestire linee con terminazione zero), un'altra risposta ha un ottimo metodo:
find . -maxdepth 1 -print0 | sort -z | uniq -diz
Nota:l'output avrà stringhe con terminazione zero; lo strumento che utilizzi per elaborare ulteriormente dovrebbe essere in grado di gestirlo.
In assenza di strumenti che si occupano di righe con terminazione zero, o se vuoi assicurarti che il tuo codice funzioni in ambienti in cui tali strumenti non sono disponibili, hai bisogno di un piccolo script:
#!/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
Cos'è questa follia?
Vedi questa risposta per una spiegazione delle tecniche che lo rendono sicuro per nomi di file pazzi.