Quiero generar una lista de archivos que tienen:
- Mismo nombre
- Contenido diferente
en un directorio (incluidos todos los directorios y contenidos secundarios).
¿Cómo hacer? Bash, perl, todo está bien.
Por lo tanto, dos archivos con el mismo nombre y el mismo contenido no deberían aparecer.
Respuestas:
Actualización: se corrigió un error tipográfico en el script: se cambió
print $NF
aprint $3
; También arregló las cosas y agregó algunos comentarios.Suponiendo que los nombres de archivo no contienen
\n
, lo siguiente imprime una lista ordenada que se divide (como en: cortes de control de sección ) en uniquefile name
, uniquemd5sum
y muestra el grupo correspondiente de rutas de archivos.Salida que muestra solo nombres de archivo con múltiples
md5
sSalida que muestra todos los archivos con el mismo nombre.
fuente
Aquí hay un script de Perl. Ejecútelo en el directorio en la parte superior del árbol que desea buscar. El script depende de
find
ymd5
, pero este último se puede sustituir porsha1
,sum
o cualquier otro programa de hash de archivo que acepte la entrada de la entrada estándar y envía un hash en la salida estándar.fuente
finddup esta herramienta también puede ayudarlo a enumerar los archivos con el mismo nombre o contenido.
fuente
Para aquellos que quieren ver solamente una lista de nombres de archivo, aquí está la parte correspondiente del Peter.O 's respuesta :
} '
No necesito md5sums porque lo uso
fslint-gui
antes del script para borrar todos los duplicados.fuente