Estoy buscando algo que compare directorios y archivos como lo hace Beyond Compare para Windows.
Es principalmente para el uso del control de código fuente, pero también necesito usarlo para la implementación.
Estoy buscando algo que compare directorios y archivos como lo hace Beyond Compare para Windows.
Es principalmente para el uso del control de código fuente, pero también necesito usarlo para la implementación.
Respuestas:
Meld es una herramienta que puede comparar y fusionar archivos y directorios. Es una GUI análoga a las herramientas estándar diff
y de patch
línea de comandos. (Ver man diff y man patch para más detalles sobre eso)
Además, muchos sistemas de control de fuente (como bzr
o git
) tienen la capacidad de crear diferencias entre versiones.
beyond compare
continuación. superior a
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.
colordiff
y usadocolordiff -ur path1 path2
'Beyond Compare' también está disponible para Linux.
Verifique su URL de descarga: http://www.scootersoftware.com/download.php
Usa el diff
comando:
diff -u file1 file2
diff -u
selecciona un formato con algunas líneas de contexto. Un plano diff file1 file2
solo enumera las diferentes líneas. Hay muchas más opciones para controlar el formato de salida, ignorar las diferencias de espacio en blanco, etc.
Si desea escribir el resultado en un archivo, rediríjalo:
diff -u file1 file2 >file1-file2.diff
La interfaz puede no ser realmente sexy, ¡pero es extremadamente poderosa!
Y si estaba acostumbrado a otro * Comandante (como Norton o similares), no se perderá.
Inspirado en esta entrada del blog .
Listado de diferentes archivos:
diff -qr folder1 folder2
Listado también contenido:
diff -Naur folder1 folder2
Si los dos directorios no están en la misma máquina, rsync
podría ser la solución más fácil. Por rsync
lo general, se usa para sincronizar directorios, pero puede ejecutarlo en modo detallado y seco, por lo que solo enumerará los archivos que tendría que cambiar.
rsync -rvnc --delete folder1 server:/path/to/folder2
Puede omitir c
si desea comparar archivos basados en marcas de tiempo y tamaños de archivo para acelerar todo:
rsync -rvn --delete folder1 server:/path/to/folder2
Krusader es una herramienta gratuita (disponible en el Centro de software) que muestra el contenido de la carpeta en comparación y puede sincronizarse con muchas opciones diferentes. Puede filtrar mientras sincroniza y compara.
Para comparar el contenido de los archivos, simplemente marque dos archivos, seleccione "archivo"> "comparar contenido" y se comparan letra por letra. La herramienta de comparación predeterminada utilizada por krusader es la herramienta predeterminada de KDE " Kompare ". Puede configurar krusader para usar 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 de combinación de teclas utilizadas por Midnight Commander (sintaxis de Norton Commander).
Aprendí sobre hashdeep hace dos semanas. Y tiene algunas ventajas importantes:
meld
, funciona bien para carpetas muy grandes. Donde se meld
vuelve extremadamente lento y la interfaz de usuario no responde (bloqueado), hashdeep simplemente funciona a una velocidad constantersync
, 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
Una buena manera de hacer esta comparación es usar " find " con " md5sum ", luego un " diff ".
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
Realice el mismo procedimiento para el otro directorio:
$find /dir2/ -type f -exec md5sum {} \; > dir2.txt
Luego compare el resultado con dos archivos con "diff":
$diff dir1.txt dir2.txt
Esta estrategia es muy útil cuando los dos directorios a comparar 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/
¡Atentamente!
Pruebe también FreeFileSync . Tiene una interfaz decente, velocidad de comparación aceptable, buen filtrado del resultado de comparación, diferentes formas de sincronización. Viene con una herramienta de monitoreo de carpetas (RealTimeSync) que puede iniciar FreeFileSync (en realidad cualquier comando o secuencia de comandos) cuando se cambia esa carpeta específica (o carpetas) o los archivos dentro. Realmente vale la pena intentarlo.
Más información al respecto aquí o aquí , donde se tiene una PPA , también
Desde su página, las características clave:
Compare archivos (bytewise o por fecha) y sincronícelos.
Sin limitaciones: se puede sincronizar un número arbitrario de archivos.
Soporte Unicode.
Soporte de red.
Soporte incorporado para nombres de archivo muy largos (más de MAX_PATH = 260 caracteres).
Base de datos de sincronización para propagación de archivos eliminados y detección de conflictos
Soporte para múltiples pares de carpetas con configuración distinta
Soporte completo para Windows / Linux Symbolic Links y Windows Junction Points.
Interfaz de usuario sencilla y de fácil acceso: altamente optimizada para la velocidad y grandes conjuntos de datos.
Algoritmos codificados en C ++ completamente.
¡Todos los indicadores de progreso optimizados para el máximo rendimiento!
Cree 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 o selva de íconos.
Seleccione todas las carpetas mediante arrastrar y soltar.
La última configuración utilizada y la configuración de la pantalla se guardan automáticamente.
Mantenga y cargue diferentes configuraciones arrastrando y soltando, cargando botón o línea de comando.
Haga doble clic para iniciar la aplicación externa (por ejemplo, mostrar archivo en el Explorador de Windows)
Copie y pegue todos los datos de la cuadrícula como texto
Elimine archivos superfluos / temporales directamente en la cuadrícula principal.
Haga clic con el botón derecho en el menú contextual.
Información completa de estado e informes de errores
Ordenar listas de archivos por nombre, tamaño o fecha.
Soporte para archivos de más de 4 GB.
Opción para mover archivos a la Papelera de reciclaje en lugar de eliminarlos / sobrescribirlos.
Ignore los 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 trabajos de sincronización grandes.
Funcionalidad de filtro para incluir / excluir archivos de la sincronización (¡sin requerir una nueva comparación!).
Incluir / excluir archivos específicos de la sincronización temporalmente.
Maneje automáticamente los cambios de horario de verano en los volúmenes FAT / FAT32.
Versión portátil disponible (seleccionable mediante instalador).
Versión nativa de 64 bits.
Busque actualizaciones desde FreeFileSync automáticamente.
Copie archivos bloqueados con el Servicio de instantáneas de volumen de Windows. (Solo Windows)
Cree copias de seguridad regulares con macros% time%,% date% dentro de los 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, múltiples escritores, el mismo recurso compartido de red)
Agregaría que puede administrar archivos eliminados, moviéndolos 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.
Puedes usar difuso:
sudo apt-get install diffuse
diffuse file1 file2
Puedes probar meld .
Son los repositorios y proporciona una GUI para la comparación de archivos o carpetas.
En mi humilde opinión, FreeFileSync es muy bueno y más útil que Meld. Es rápido y estable, puede realizar sincronizaciones costosas y también puede exportar el resultado de la comparación a un archivo csv.
Las funciones multiplataforma, fáciles, sin complicaciones y de ahorro de perfil hacen de Jfilesync mi mejor opción
File_1.txt
Line1
Line2
File_2.txt
Line1
Line 2
Puedes 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
puedes 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