04 febrero 2008

Encontrar diferencias entre carpetas en GNU/Linux (Ubuntu)

Actualización: Como encontrar diferencias en Ubuntu más fácilmente.

Anteriormente hablé de cómo sincronizar carpetas de un PC con Ubuntu y Unison , ahora explico este pequeño truco sencillo que me ha sido útil más de una vez.

En algunas ocasiones, quiero comprobar que dos directorios contienen lo mismo, y si no es así, me gusta saber que es lo qué falta en cada uno de ellos. Cuando no me apetece usar Unison para tal cometido, uso dos comandos muy sencillos pero potentes: ls y diff.

Cómo conocer las diferencias entre dos carpetas

  • Abrir un terminal
  • Ejecutar ls /home/usuario/carpeta1 > carp1 (cambiando la parte en negrita por nuestra carpeta1)
  • Ejecutar ls /home/usuario/carpeta2 > carp2 (cambiando la parte negrita por nuestra carpeta2)
  • Ejecutar diff carp1 carp2

Si todo sale bien, y tienen los mismos archivos, no se mostrará nada en pantalla. Si tienen alguna diferencia, se mostrarán en pantalla todas las que haya.

Como conocer TODAS las diferencias entre dos carpetas
Si nos interesa saber si hay alguna diferencia de forma recursiva, es decir, diferencias en todos los subdirectorios de carpetas (pej. en una colección de música)
  • Abrir un terminal
  • Ejecutar ls -R /home/usuario/carpeta1 > carp1 (cambiando la parte en negrita por nuestra carpeta1)
  • Ejecutar ls -R /home/usuario/carpeta2 > carp2 (cambiando la parte negrita por nuestra carpeta2)
  • Ejecutar diff carp1 carp2

Quiero aclarar que para entender las diferencias (cuando se producen) hay que leerse el manual de diff, pero si no hay diferencias, que es lo que queremos generalmente, simplemente veremos que no aparece nada en pantalla.

Nota importante: vigilad con los ficheros de salida, según donde los guardéis pueden dar lugar a diferencias:

1. listamos la carpeta actual.
2. listamos la carpeta actual otra vez.
3. no debería haber diferencias en una misma carpeta.. teóricamente.

ls > carp1

ls > carp2
diff carp1 carp2

Esta comparación dará como resultado que la carpeta carp2 tiene un fichero más que la carp1, debido a que lo hemos generado en el primer paso.


PD: Sí, en el títutlo pongo Ubuntu porqué es mas comercial.

No hay comentarios: