Solución 1:
Desde la página del manual de diferencias:
Si tanto el archivo de origen como el archivo de destino son directorios, diff compara los archivos correspondientes en ambos directorios, en orden alfabético; esta comparación no es recursiva a menos que se dé la opción -r o --recursive.diff nunca compara el contenido real de un directorio como si fuera un archivo. El archivo que está completamente especificado puede no ser una entrada estándar, porque la entrada estándar no tiene nombre y la noción de "archivo con el mismo nombre" no se aplica.
Así que para comparar directorios:diff --brief -r dir1 dir2
Para comparar archivos uno al lado del otro:diff --side-by-side file1 file2
Solución 2:
Suponiendo:
- estamos en
www1
, en comparación conwww2
remoto - hay una autenticación de clave ssh pública configurada desde el
www1
local al remotowww2
- comparamos como el mismo usuario en
www1
local y remotowww2
find /var/www/html/ -name "*" -exec md5sum -b {} \; | grep -v "/var/www/html/exclude_this dir" > local.md5 ssh www2 "find /var/www/html/ -name '*' -exec md5sum -b {} \; | grep -v /var/www/html/exclude_this dir > remote.md5" scp www2:remote.md5 . diff local.md5 remote.md5
Solución 3:
Realmente quieres combinar el poder de rsync
para reducir el consumo de ancho de banda con el poder de diff
para darle diferencias flexibles, bueno um.
Así que algo como esto:
cp -R $local $bak
rsync $server:$remdir/* $local/
rsync $local/ $server:$remdir/*
diff -wur $local $bak
Supongo que podría modificar esto un poco si lo hiciera a menudo usando rsync
en lugar de cp
en la primera línea - obviamente en la última línea tienes todo el poder de diff
para formatearlo como quieras. Probablemente con y en el caso de OPs
La desventaja de este enfoque es que terminas usando el doble de espacio local, pero a menos de $1 por concierto, ¿a quién le importa?