Herramienta de comparación de archivos y directorios?

142

Estoy buscando algo que pueda comparar directorios y archivos como lo hace Beyond Compare para Windows.

Se usa principalmente para el control de fuente, pero también debo usarlo para el despliegue.

    
pregunta DevelopingChris 10.11.2010 - 13:15

19 respuestas

169

Meld

Meld es una herramienta que puede comparar y fusionar archivos y directorios. Es una GUI análoga al estándar diff y patch comando herramientas de línea. (Consulte man diff y man patch para obtener más detalles sobre ellos)

Además, muchos sistemas de control de origen (como bzr o git ) tienen la capacidad de crear diffs entre versiones.

    
respondido por el dv3500ea 10.11.2010 - 13:28
42

Diff es tu amigo.

diff -ur path1 path2

Esto comparará todos los archivos que son comunes entre path1 y path2.

Si cambia -ur a -urN , eso también mostrará el contenido de los archivos que solo están presentes en una de las rutas.

    
respondido por el Richm 04.10.2011 - 19:43
21

'Beyond Compare' también está disponible para Linux.

Verifique su url de descarga: enlace

    
respondido por el aneeshep 10.11.2010 - 13:23
13

Utilice el comando diff :

diff -u file1 file2

diff -u selecciona un formato con algunas líneas de contexto. Un simple diff file1 file2 solo enumera las diferentes líneas. Hay muchas más opciones para controlar el formato de salida, ignorar las diferencias solo en el espacio en blanco, etc.

Si desea escribir la salida en un archivo, redirijala:

diff -u file1 file2 >file1-file2.diff
    
respondido por el Gilles 07.10.2013 - 22:05
12

Gnome Commander

¡La interfaz podría no ser muy sexy, pero es extremadamente poderosa!

Y si estuvieras acostumbrado a otro * Commander (como Norton, o "me gusta"), no te perderás.

    
respondido por el Huygens 10.11.2010 - 14:09
10

Herramientas de línea de comando

Inspirado por esta entrada del blog .

diff

Listado de diferentes archivos:

diff -qr folder1 folder2

Listado también contenido:

diff -Naur folder1 folder2

rsync

Si los dos directorios no están en la misma máquina, rsync podría ser la solución más fácil. Por lo general, rsync se usa para sincronizar directorios, pero puede ejecutarlo en modo detallado y seco, por lo que solo mostrará los archivos que debería cambiar.

rsync -rvnc --delete folder1 server:/path/to/folder2

Puede omitir c si desea comparar archivos según las marcas de tiempo y los tamaños de archivo para acelerar todo:

rsync -rvn --delete folder1 server:/path/to/folder2
    
respondido por el lumbric 25.12.2011 - 20:22
9

Krusader

Krusader es una herramienta gratuita (disponible en el Centro de software) que muestra el contenido de la carpeta en comparación y puede sincronizar con muchas opciones diferentes. Puede filtrar mientras sincroniza y compara.

Para comparar el contenido del archivo, simplemente marque dos archivos, seleccione "archivo" & gt; "comparar contenido" y se comparan letra por letra. la herramienta de comparación predeterminada utilizada por krusader es la herramienta de KDE predeterminada " Kompare ". Puede configurar krusader para utilizar cualquier otra herramienta de comparación, como por ejemplo una de las anteriores.

Esta es la solución más completa que he encontrado y es muy conveniente. Y es compatible con todas las funciones keybindungs ​​utilizadas por el comandante de medianoche (sintaxis del comandante del norton).

    
respondido por el piedro 10.11.2010 - 19:39
9

KDiff3

Es un front-end gráfico para diff para usuarios de KDE (o si no te importa usar aplicaciones Qt).

También hay dirdiff para directorios.

    
respondido por el tinhed 10.11.2010 - 13:59
6

Tal vez Meld sea lo que estás buscando. O aquí hay otras alternativas.

    
respondido por el sagarchalise 10.11.2010 - 13:23
4

Unison es una herramienta rápida de sincronización de archivos que utiliza el algoritmo rsync y le permite previsualizar las diferencias antes de actualizar entre 2 ubicaciones, ya sean remotas o locales.

    
respondido por el Rog 18.01.2011 - 03:29
4

Aprendí sobre hashdeep hace dos semanas. Y tiene algunas ventajas importantes:

  • A diferencia de meld , funciona bien para carpetas muy grandes. Donde meld se vuelve extremadamente lento y la UI no responde (bloqueado), hashdeep solo funciona a velocidad constante
  • A diferencia de rsync , hashdeep detecta archivos movidos: archivos con el mismo contenido, solo en un directorio diferente.

La salida detallada es como:

...
foo/bar.txt: Known file not used
x/foo/M0824_2L.JPG: Moved from y/P1010998.JPG

hashdeep: Audit failed
   Input files examined: 0
  Known files expecting: 0
          Files matched: 6233
Files partially matched: 0
            Files moved: 3695
        New files found: 19257
  Known files not found: 4713
    
respondido por el geekQ 07.05.2013 - 13:50
3

Pruebe también FreeFileSync . Tiene una interfaz decente, una velocidad de comparación aceptable, un buen filtrado del resultado de la comparación, diferentes formas de sincronización. Viene con una herramienta de supervisión de carpetas (RealTimeSync) que puede ejecutar FreeFileSync (en realidad cualquier comando o script) cuando esa carpeta específica (o carpetas) o los archivos dentro se cambian. Realmente vale la pena intentarlo.

Más información al respecto aquí o aquí , donde también tiene PPA ,

Desde su página, las características clave:

  

Compare los archivos (por tiempo o por fecha) y sincronícelos.

     

Sin limitaciones: se puede sincronizar una cantidad arbitraria de archivos.

     

Soporte de Unicode.

     

Soporte de red.

     

Compatibilidad incorporada para nombres de archivo muy largos (más de MAX_PATH = 260 caracteres).

     

Base de datos de sincronización para la propagación de archivos eliminados y la detección de conflictos

     

Soporte para múltiples pares de carpetas con una configuración distinta      

Soporte completo para enlaces simbólicos de Windows / Linux y puntos de unión de Windows.

     

Lean & amp; IU de fácil acceso: altamente optimizado para la velocidad y grandes conjuntos de datos.

     

Algoritmos codificados en C ++ por completo.

     

¡Todos los indicadores de progreso optimizados para un rendimiento máximo!

     

Crear trabajos por lotes para la sincronización automática con o sin GUI.

     

Centrarse en la usabilidad:

     
    
      
        

Solo la funcionalidad necesaria en la interfaz de usuario: sin menús sobrecargados ni jungle.

                 

Seleccione todas las carpetas mediante arrastrar y amp; soltar.

                 

La última configuración utilizada y la configuración de pantalla se guardan automáticamente.

                 

Mantiene y carga diferentes configuraciones arrastrando y amp; soltar, botón de carga o línea de comando.

                 

Haga doble clic para iniciar la aplicación externa (por ejemplo, mostrar el archivo en el Explorador de Windows)

                 

Copiar y amp; pegar todos los datos de la cuadrícula como texto

                 

Elimine los archivos superfluos / temporales directamente en la cuadrícula principal.

                 

Haz clic con el botón derecho en el menú contextual.

                 

Información exhaustiva del estado e informes de errores

                 

Ordenar listas de archivos por nombre, tamaño o fecha.

      
    
  
     

Compatible con archivos de más de 4 GB.

     

Opción de mover archivos a la Papelera de reciclaje en lugar de eliminarlos / sobreescribirlos.

     

Ignorar directorios "\ RECYCLER" y "\ System Volume Information" con el filtro predeterminado. (Solo Windows)

     

Las versiones localizadas están disponibles para muchos idiomas.

     

Eliminar antes de copiar: evite la escasez de espacio en disco para grandes trabajos de sincronización.

     

Funcionalidad de filtro para incluir / excluir archivos de la sincronización (¡sin necesidad de volver a comparar!).

     

Incluir / excluir archivos específicos de la sincronización temporalmente.

     

Gestiona automáticamente los cambios de horario de verano en volúmenes FAT / FAT32.

     

Versión portátil disponible (seleccionable mediante el instalador).

     

Versión nativa de 64 bits.

     

Buscar actualizaciones desde FreeFileSync automáticamente.

     

Copie los archivos bloqueados utilizando el Servicio de instantáneas de volumen de Windows. (Solo Windows)

     

Cree copias de seguridad periódicas con macros% time%,% date% en nombres de directorio

     

Copie los tiempos de creación / acceso / modificación de archivos y carpetas al sincronizar

     

Estrategia de bloqueo avanzada para permitir múltiples procesos de sincronización (por ejemplo, varios escritores, el mismo recurso compartido de red)

Añadiría que puede administrar archivos eliminados, moverlos a la Papelera o una carpeta especificada por el usuario. Para señalar una desventaja: la documentación del programa se centra bastante en Windows, menos en Linux. Pero hace su trabajo muy bien.

    
respondido por el luri 18.01.2011 - 02:18
3

Puedes usar diffuse:

sudo apt-get install diffuse
diffuse file1 file2
    
respondido por el metdos 18.12.2012 - 09:50
3

Una buena forma de hacer esta comparación es usar " buscar " con " md5sum ", luego una " diferencia ".

Ejemplo:

Use find para enumerar todos los archivos en el directorio, luego calcule el hash md5 para cada archivo y canalícelo a un archivo:

$find /dir1/ -type f -exec md5sum {} \; > dir1.txt

Haz el mismo procedimiento en el otro directorio:

$find /dir2/ -type f -exec md5sum {} \; > dir2.txt

Luego compara el resultado de dos archivos con "diff":

$diff dir1.txt dir2.txt

Esta estrategia es muy útil cuando los dos directorios que se comparan no están en la misma máquina y debe asegurarse de que los archivos sean iguales en ambos directorios.

Otra buena forma de hacer el trabajo es usar git

git diff --no-index dir1/ dir2/

¡Saludos!

    
respondido por el Adail Junior 09.01.2017 - 21:09
2

Puedes probar meld .

Son los repositorios y proporcionan una GUI para comparar archivos o carpetas.

    
respondido por el Pavlos G. 04.10.2011 - 18:58
1

Eclipse IDE es un poco pesado si solo hace comparaciones, pero hace un buen trabajo, entre otras cosas. Puede seleccionar 2 proyectos, rutas o archivos y compararlos entre sí, y también sincronizar con los servidores de control de origen.

    
respondido por el Rog 18.01.2011 - 03:25
1

IMHO FreeFileSync es muy bueno y más útil que Meld. Es rápido y estable, puede sincronizar costomizable y también puede exportar el resultado de la comparación a un archivo csv.

enlace de Lanchpad

    
respondido por el Reza 20.01.2014 - 13:53
0

multiplataforma, fácil, sin problemas y amp; las funciones para guardar el perfil hacen de Jfilesync mi principal opción

    
respondido por el nightcrawler 23.07.2014 - 21:51
0

Para comparar archivos

File_1.txt
Line1
Line2

File_2.txt
Line1
Line 2

Puede usar el comando cmp :

cmp -b "File_1.txt" "File_2.txt"

la salida sería

a b differ: byte 11, line 2 is  62 2  40  

Para comparar directorios (su necesidad):

puede usar el comando diff :

diff -r --brief dir1 dir2

man diff

  -r, --recursive
              recursively compare any subdirectories found

   -q, --brief
          report only when files differ
    
respondido por el Maythux 17.06.2015 - 13:05

Lea otras preguntas en las etiquetas