GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo comparar diferencias entre directorios (linux)

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 con www2 remoto
  • hay una autenticación de clave ssh pública configurada desde el www1 local al remoto www2
  • comparamos como el mismo usuario en www1 local y remoto www2
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?


Linux
  1. Cómo sincronizar directorios locales y remotos en Linux

  2. Cómo montar un recurso compartido remoto de Windows en Linux

  3. Cómo cambiar el nombre de un directorio en Linux

  4. ¿Cómo enumerar recursivamente los directorios en C en Linux?

  5. Cómo diferenciar directorios sobre ssh

Cómo cambiar el nombre de los directorios en Linux

Cómo comparar directorios con Meld en Linux

Cómo navegar directorios más rápido en Linux

Cómo comparar archivos en Linux usando la herramienta Meld (Diff/Merge)

Cómo comparar dos archivos en la terminal de Linux

Cómo enumerar solo directorios en Linux