¿La mejor manera de encontrar archivos de datos duplicados entre dos máquinas Linux?

¿La mejor manera de encontrar archivos de datos duplicados entre dos máquinas Linux?

Tengo dos cajas Debian en casa que contienen varias fotos, audio, video y otros archivos de datos. Ambos están desorganizados, me gustaría organizarlos y eliminar archivos duplicados entre ellos. Tampoco hay mucha estructura lógica de carpetas.

¿Hay una forma fácil de hacer esto?

Respuesta1

Hay muchas variantes. Creo que md5 está en el camino correcto, pero usar sumas SHA probablemente sea un poco mejor. SHA1 probablemente tenga una velocidad similar y sea menos probable que produzca una colisión (aunque las posibilidades de colisión son infinitesimales en cualquier sentido).

Haría algo como lo siguiente:

  1. En cada cuadro, cree una lista de archivos con sus sumas sha1 con un comando como

buscar /ruta/a/archivos -tipo f -exec sha1sum {} + > pcX-sha1.lst

  1. Luego copiaría ambos archivos en 1 cuadro. Una vez que haya hecho eso, encontraré una lista de sumas de verificación sha que muestran solo los archivos que están duplicados. Una vez que los archivos estén en el mismo directorio, algo así como

cortar -f1 -d" " pcX-sha1.lst pcY-sha1.lst | ordenar | uniq -d > duplicados.lst

La última lista es para encontrar los archivos duplicados que puedes hacer con un comando como

para cada uno en $(cat duplicashas.lst); hacer grep $cada pcX-sha1.lst; hecho

Lo anterior enumerará los archivos con sus nombres encontrados en pcX-sha1.lst. Por supuesto, puede utilizar cualquiera de los archivos (o ambos archivos si desea ver la ubicación de los archivos en ambos lugares y si tienen nombres de archivo diferentes).

información relacionada