| Subcribe via RSS

La consola de Linux - comparar dos directorios

Noviembre 27th, 2006 Posted in linux

En más de una ocasión te habrás encontrado con la necesidad de tener que comparar el contenido de dos directorios, por ejemplo para ver qué fichero falta en uno de los directorios. Yo suelo usar el siguiente script:

ls $1 > $1.listado
ls $2 > $2.listado
comm $1.listado $2.listado $3
rm $1.listado
rm $2.listado

(Yo lo tengo guardado en un fichero llamado compara en un directorio incluido en el PATH; para poder ejecutarlo desde cualquier sitio).

El trabajo principal lo hace el comando comm, que compara dos ficheros y muestra las diferencias entre ellos. En este caso compara dos ficheros que contiene cada uno el listado de un directorio.

Por ejemplo tengo el directorio dir1 que contiene:

fichero_1.txt
fichero_comun.txt

y el directorio dir2 que contiene:

fichero_2.txt
fichero_comun.txt

Para comparar los directorios uso lo siguiente:

./compara dir1 dir2

y muestra el siguiente resultado:

fichero_1.txt
        fichero_2.txt
                fichero_comun.txt

En la primera fila tenemos los ficheros que están únicamente en el primer directorio, en el segundo tenemos los que están en el segundo directorio. Por último nos muestra los ficheros que se encuentran en ambos directorios.

El comando comm permite además las siguientes opciones:
-1 no muestra la columna correspondiente al fichero 1.
-2 no muestra la columna correspondiente al fichero 2.
-3 no muestra la columna común.

Así, si no queremos que aparezcan los ficheros presentes en ambos directorios usaremos:

./compara dir1 dir2 -3

Por comodidad yo uso el script anterior siempre con la opción 3 activada:

ls $1 > $1.listado
ls $2 > $2.listado
comm $1.listado $2.listado $33
rm $1.listado
rm $2.listado

Entradas relacionadas

  1. La consola de Linux - cambiar directorios rápidamente
  2. La consola de Linux - crear directorios con mkdir
  3. La consola de Linux - hacer un fichero ejecutable
  4. La consola de Linux II - buscar archivos
  5. La consola de Linux - sustituir un texto en un fichero
Valoración:
1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (Sin calificar)
Loading ... Loading ...

Leave a Reply