GNU/Linux >> Tutoriales Linux >  >> Linux

Linux:compare la estructura de directorios sin comparar archivos

Lo siguiente (si sustituye el primer directorio por el directorio 1 y el segundo por el directorio 2) debería hacer lo que está buscando y rápidamente:

find directory1 -type d -printf "%P\n" | sort > file1
find directory2 -type d -printf "%P\n" | sort | diff - file1

El principio fundamental es que imprime todos los directorios, incluidas las rutas de los subdirectorios en relación con los directorios del directorio baseN.

Esto podría fallar (producir resultados extraños) si tiene retornos de carro en algunos de los nombres de directorio pero no en otros.


vimdiff <(cd dir1; find . | sort) <(cd dir2; find . | sort)

le dará una buena visualización de lado a lado de las dos jerarquías de directorios con las secciones comunes plegadas.


Usualmente uso rsync para esta tarea:

rsync -nav --delete DIR1/ DIR2

TEN MUCHO CUIDADO usar siempre el -n , también conocido como --dry-run , opción, o sincronizará (cambiará el contenido de) los directorios.

Esto comparará los archivos en función de los tiempos y tamaños de modificación de archivos... Creo que eso es lo que realmente quieres, o al menos no te importa si hace eso? Tengo la sensación de que solo quieres que suceda más rápido , no es que lo necesite para ignorar la diferencia entre los contenidos del archivo. Si desea que no enumere archivos diferentes con nombres idénticos, creo que la adición de --ignore-existing opción hará eso.

También tenga en cuenta que no poner un / al final de DIR1 hará que compare el directorio DIR1 con los contenidos de DIR2 .

La salida termina siendo un poco detallada, pero le mostrará qué archivos/directorios difieren. Archivos/directorios presentes en DIR2 y no en DIR1 estará precedido por la palabra deleting .

Para algunas situaciones, la respuesta de @slartibartfast puede ser más apropiada, aunque deberá eliminar el -type d opción para habilitar la lista de archivos que no son de directorio. rsync será más rápido si tiene una cantidad significativa de archivos/directorios para comparar.


Linux
  1. Mover archivos en Linux sin mv

  2. Cómo extraer archivos Tar a un directorio específico o diferente en Linux

  3. Eliminar solo archivos en el directorio en linux NO directorios

  4. comando de linux para vaciar todos los archivos de un directorio

  5. Copie la estructura de carpetas de nivel superior sin copiar archivos en Linux

Cómo listar archivos recursivamente en Linux

Cómo contar archivos en el directorio en Linux

Contar el número de archivos en un directorio en Linux

Estructura de directorios de Linux explicada para principiantes

Cómo contar el número de archivos en un directorio en Linux

Comparando dos archivos en la terminal de Linux