Probar:
ls -1 | tr '[A-Z]' '[a-z]' | sort | uniq -c | grep -v " 1 "
simple, en realidad :-) ¿No son maravillosas tuberías bestias?
El ls -1
le da los archivos uno por línea, el tr '[A-Z]' '[a-z]'
convierte todo en mayúsculas a minúsculas, los sort
tipo ellos (sorprendentemente), uniq -c
elimina las repeticiones posteriores de las líneas duplicadas, mientras que le da un recuento, así y, por último, la grep -v " 1 "
quita esas líneas donde el recuento era uno.
Cuando ejecuto esto en un directorio con un "duplicado" (He copiado qq
-qQ
), me sale:
2 qq
Para el "este directorio y cada subdirectorio" versión, basta con sustituir ls -1
con find .
o find DIRNAME
si desea un punto de inicio de directorio específico (DIRNAME
es el nombre del directorio que desea usar).
Esto devuelve (para mí):
2 ./.gconf/system/gstreamer/0.10/audio/profiles/mp3
2 ./.gconf/system/gstreamer/0.10/audio/profiles/mp3/%gconf.xml
2 ./.gnome2/accels/blackjack
2 ./qq
que son causados por:
pax> ls -1d .gnome2/accels/[bB]* .gconf/system/gstreamer/0.10/audio/profiles/[mM]* [qQ]?
.gconf/system/gstreamer/0.10/audio/profiles/mp3
.gconf/system/gstreamer/0.10/audio/profiles/MP3
.gnome2/accels/blackjack
.gnome2/accels/Blackjack
qq
qQ
Actualización:
En realidad, en una reflexión más profunda, la tr
se minúsculas todas componentes de la ruta de modo que ambos
/a/b/c
/a/B/c
serán considerados duplicados pesar de que están en diferentes directorios.
Si sólo desea duplicados dentro de un único directorio para mostrar como un partido, se puede utilizar el (más monstruosa):
perl -ne '
chomp;
@flds = split (/\//);
$lstf = $f[-1];
$lstf =~ tr/A-Z/a-z/;
for ($i =0; $i ne $#flds; $i++) {
print "$f[$i]/";
};
print "$x\n";'
en lugar de:
tr '[A-Z]' '[a-z]'
Lo que hace es solo minúscula la porción final del nombre de ruta en lugar de todo.Además, si solo desea archivos regulares (sin directorios, FIFO, etc.), use find -type f
para restringir lo que se devuelve.
lo que si usted tiene mismo nombre pero en minúsculas y todo en diferentes carpetas? ¿Cuál vas a eliminar? – ghostdog74
@ghost: pero en diferentes casos que existen _en la misma carpeta_. – paxdiablo
Como lo señala @paxdiablo, solo me importan los nombres duplicados que existen en la misma carpeta. – Camsoft