¿Cómo verificar contenido entre dos directorios?

En estos últimos dos años, he estado en contacto con varios clusters dentro de la universidad donde hago mis estudios de posgrado. La solución que he escogido para mantener sincronizados mis directorios de trabajo ha sido rsync. Esto, básicamente porque está instalado en todas las estaciones generalmente (cosa que no ocurre con git, que no está siempre instalado).
Sin embargo, a veces he tenido que dejar andando ciertos cálculos por semanas y seguir haciendo trabajos en otros clusters que tienen más hardware por nodo que me son de utilidad. Pero, ¿qué pasa si tengo un directorio centralizado y he borrado ciertos sub directorios en otros clusters y quiero saber cuáles han sido borrados? Aunque parezca básico, es aquí donde diff entró al rescate. (Si alguien conoce otra forma más apropiada, por favor no dude en hacerla saber
). La utilidad está si cuando sincronizas sueles usar la opción –delete en rsync.
Si queremos comparar dos directorios ejecutamos lo siguiente:
diff $DIRECTORIO1 $DIRECTORIO2
Por ejemplo:
muammar@circa:~$ diff hyperion hyperion.21012012/
Subdirectorios comunes: hyperion/elkhatib y hyperion.21012012//elkhatib
Sólo en hyperion.21012012/: homework
Sólo en hyperion.21012012/: old
La salida no necesita explicación. Queda demás decir, que se pueden utilizar las opciones habituales relacionadas al comando diff. Para más información, lee el manual (man diff).
Categorised as: Ciencias | Debian | Linux
Que bueno!, no sabía que diff también se usaba para directorios. por mi parte hice algo parecido pero al contrario
. para buscar archivos repetidos desde un directorio base (por ejemplo albumes de fotos, mp3′s, etc)
https://github.com/dvst/scripts-utiles/blob/master/archivos-repetidos.sh
se puede mejorar, pero es útil, saludos, y gracias por compartir.
http://meld.sourceforge.net/
Hola Paco.
No sabía que Meld lo podía hacer. Utilicé diff, porque estaba conectado a un servidor remoto, y meld no esta disponible.
Gracias por compartir.