¿Hay alguna manera de encontrar todos los archivos en un directorio con nombres de archivo duplicados, independientemente de las mayúsculas y/o minúsculas?
Respuesta aceptada:
Si tiene utilidades GNU (o al menos un conjunto que puede manejar líneas terminadas en cero) disponibles, otra respuesta tiene un gran método:
find . -maxdepth 1 -print0 | sort -z | uniq -diz
Nota:la salida tendrá cadenas terminadas en cero; la herramienta que usa para procesarlo más debería ser capaz de manejar eso.
En ausencia de herramientas que se ocupen de las líneas terminadas en cero, o si desea asegurarse de que su código funcione en entornos donde dichas herramientas no están disponibles, necesita un pequeño 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
¿Qué es esta locura?
Consulte esta respuesta para obtener una explicación de las técnicas que hacen que esto sea seguro para los nombres de archivo locos.