Búsqueda de sitios web

Las 10 mejores herramientas de comparación y diferencia (Diff) de archivos en Linux


Al escribir archivos de programa o archivos de texto normales, los programadores y escritores a veces quieren saber la diferencia entre dos archivos o dos versiones del mismo archivo.

Cuando comparas dos archivos de computadora en Linux, la diferencia entre sus contenidos se llama diff. Esta descripción nació de una referencia a la salida de diff, la conocida utilidad de comparación de archivos de línea de comandos de Unix.

Hay varias herramientas de comparación de archivos que puede usar en Linux, y en esta revisión, veremos algunas de las mejores herramientas de diferenciación GUI y basadas en terminal que puede aprovechar al escribir código u otros archivos de texto.

1. comando diferencia

Me gusta comenzar con la herramienta de línea de comandos original de Unix que muestra la diferencia entre dos archivos de computadora. Diff es simple y fácil de usar, viene preinstalado en la mayoría de las distribuciones de Linux y compara archivos línea por línea y genera la diferencia entre ellos.

Comparar dos archivos y mostrar las diferencias.

diff file1.txt file2.txt

Puede consultar la entrada manual de diff para usarlo fácilmente.

man diff

Hay algunos contenedores para la herramienta diff que mejoran su funcionalidad y estos incluyen:

Comando colordiff

Colordiff es un script Perl que produce el mismo resultado que diff, pero con color y resaltado de sintaxis. Tiene combinaciones de colores personalizables.

Puede instalar Colordiff en sus sistemas Linux, utilizando las herramientas predeterminadas del administrador de paquetes llamadas yum, dnf y apt-get o apt, como se muestra.

sudo apt install colordiff         [On Debian, Ubuntu and Mint]
sudo yum install colordiff         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/colordiff  [On Gentoo Linux]
sudo apk add colordiff             [On Alpine Linux]
sudo pacman -S colordiff           [On Arch Linux]
sudo zypper install colordiff      [On OpenSUSE]    

Comparar directorios de forma recursiva.

colordiff file1.txt file2.txt

Puede consultar la entrada manual para colordiff como se muestra.

man colordiff

Comando wdiff

La utilidad wdiff es una interfaz para el comando diff que se utiliza para comparar archivos palabra por palabra. Este programa es muy útil a la hora de comparar dos textos en busca de palabras modificadas y cuyos párrafos se han rellenado.

Para instalar wdiff en sus sistemas Linux, ejecute:

sudo apt install wdiff         [On Debian, Ubuntu and Mint]
sudo yum install wdiff         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/wdiff  [On Gentoo Linux]
sudo apk add wdiff             [On Alpine Linux]
sudo pacman -S wdiff           [On Arch Linux]
sudo zypper install wdiff      [On OpenSUSE]    

Para mostrar los dos archivos uno al lado del otro, resaltando las diferencias a nivel de palabra.

wdiff file1.txt file2.txt

Utilice el manual wdiff para saber cómo usarlo en Linux.

man wdiff

2. Comando Vimdiff

Vimdiff funciona de manera avanzada en comparación con la utilidad diff, que permite al usuario editar hasta cuatro versiones de un archivo mientras muestra sus diferencias. Cuando lo ejecuta, Vimdiff abre dos, tres o cuatro archivos usando el editor de texto Vim.

Para usar vimdiff, necesitarás tener Vim instalado en tu sistema, pero si no está instalado, puedes instalarlo usando tu administrador de paquetes.

sudo apt install vim         [On Debian, Ubuntu and Mint]
sudo yum install vim         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/vim  [On Gentoo Linux]
sudo apk add vim             [On Alpine Linux]
sudo pacman -S vim           [On Arch Linux]
sudo zypper install vim      [On OpenSUSE]    

Para comparar dos archivos usando vimdiff, ejecutaría el siguiente comando.

vimdiff file1.txt file2.txt

También puedes usar vimdiff para comparar tres archivos.

vimdiff file1.txt file2.txt file3.txt

Para obtener información más detallada y opciones de uso, puede acceder a la página del manual ejecutando.

man vimdiff

3. sdif

El comando sdiff se utiliza para comparar dos archivos uno al lado del otro, resaltando las diferencias entre ellos. Muestra el contenido de los dos archivos en columnas separadas, con líneas agregadas con el prefijo ">", líneas eliminadas con el prefijo "<" y líneas comunes mostradas sin ningún prefijo. .

El comando sdiff normalmente viene con la instalación estándar de la mayoría de las distribuciones de Linux. Sin embargo, si no está instalado, puede instalarlo usando su administrador de paquetes.

sudo apt install diffutils         [On Debian, Ubuntu and Mint]
sudo yum install diffutils         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/diffutils  [On Gentoo Linux]
sudo apk add diffutils             [On Alpine Linux]
sudo pacman -S diffutils           [On Arch Linux]
sudo zypper install diffutils      [On OpenSUSE]    

Comparar dos archivos y mostrar las diferencias uno al lado del otro.

sdiff file1.txt file2.txt

Habiendo analizado las herramientas diff de la vieja escuela, pasemos rápidamente a algunas herramientas GUI diff disponibles en Linux.

4. Comparar

Kompare es una herramienta gráfica de comparación y combinación que permite a los usuarios comparar y ver las diferencias entre archivos y también fusionarlos.

Para instalar Kompare en distribuciones de Linux, puede utilizar el administrador de paquetes específico de su sistema.

sudo apt install kompare         [On Debian, Ubuntu and Mint]
sudo yum install kompare         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/kompare  [On Gentoo Linux]
sudo apk add kompare             [On Alpine Linux]
sudo pacman -S kompare           [On Arch Linux]
sudo zypper install kompare      [On OpenSUSE]    

Algunas de sus características incluyen:

  • Admite múltiples formatos de diferencias
  • Admite comparación de directorios
  • Admite la lectura de archivos diff
  • Interfaz personalizable
  • Crear y aplicar parches a archivos fuente

5. Combinación diferencial

DiffMerge es una aplicación GUI multiplataforma para comparar y fusionar archivos. Tiene dos motores de funcionalidad, el motor Diff que muestra la diferencia entre dos archivos y admite resaltado y edición dentro de líneas, y un motor Fusion que genera las líneas modificadas entre tres archivos.

Tiene las siguientes características:

  • Admite comparación de directorios
  • Integración del navegador de archivos
  • Altamente configurable

6. Fusionar – Herramienta de diferenciación

Meld es una herramienta ligera de combinación y comparación de GUI que permite a los usuarios comparar archivos, directorios y programas controlados por versiones. Creado específicamente para desarrolladores, viene con las siguientes características:

  • Comparación bidireccional y triple de archivos y directorios
  • Actualización de la comparación de archivos a medida que un usuario escribe más palabras
  • Facilita las fusiones mediante el uso del modo de fusión automática y acciones en bloques modificados
  • Comparaciones sencillas mediante visualizaciones
  • Admite Git, Mercurial, Subversion, Bazaar y muchos más

Para instalar Meld en Linux, puede utilizar su administrador de paquetes para instalarlo desde los repositorios oficiales.

sudo apt install meld         [On Debian, Ubuntu and Mint]
sudo yum install meld         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/meld  [On Gentoo Linux]
sudo apk add meld             [On Alpine Linux]
sudo pacman -S meld           [On Arch Linux]
sudo zypper install meld      [On OpenSUSE]    

7. Difuso – Herramienta de diferenciación GUI

Diffuse es otra herramienta de combinación y diferenciación de GUI popular, gratuita, pequeña y sencilla que puede utilizar en Linux. Escrito en Python, ofrece dos funcionalidades principales, es decir: comparación de archivos y control de versiones, lo que permite editar y fusionar archivos, y también generar la diferencia entre archivos.

Para instalar Diffuse en Linux, puede utilizar su administrador de paquetes como se muestra.

sudo apt install diffuse         [On Debian, Ubuntu and Mint]
sudo yum install diffuse         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/diffuse  [On Gentoo Linux]
sudo apk add diffuse             [On Alpine Linux]
sudo pacman -S diffuse           [On Arch Linux]
sudo zypper install diffuse      [On OpenSUSE]    

Puede ver un resumen de comparación, seleccionar líneas de texto en archivos usando el puntero del mouse, hacer coincidir líneas en archivos adyacentes y editar diferentes archivos.

Otras características incluyen:

  • Resaltado de sintaxis
  • Atajos de teclado para una fácil navegación
  • Soporta deshacer ilimitado
  • Soporte Unicode
  • Admite Git, CVS, Darcs, Mercurial, RCS, Subversion, SVK y Monotone

8. XXdiff – Herramienta de comparación y combinación

XXdiff es una herramienta de combinación y comparación de archivos y directorios potente y gratuita que se ejecuta en sistemas operativos similares a Unix, como Linux, Solaris, HP/UX, IRIX y DEC Tru64. Una limitación de XXdiff es su falta de soporte para archivos Unicode y edición en línea de archivos diff.

Tiene la siguiente lista de características:

  • Comparación superficial y recursiva de dos, tres archivos o dos directorios
  • Resaltado de diferencia horizontal
  • Fusión interactiva de archivos y guardado del resultado resultante.
  • Admite revisiones/vigilancia de fusión
  • Admite herramientas de diferenciación externas como GNU diff, SIG diff, Cleareddiff y muchas más
  • Ampliable mediante scripts
  • Totalmente personalizable mediante archivos de recursos y muchas otras funciones menores

9. KDiff3 – – Herramienta de comparación y combinación

KDiff3 es otra genial herramienta de combinación y diferenciación multiplataforma creada con KDevelop, que funciona en todas las plataformas tipo Unix, incluidas Linux, Mac OS X y Windows.

Para instalar KDiff3 en Linux, puede utilizar su administrador de paquetes como se muestra.

sudo apt install kdiff3         [On Debian, Ubuntu and Mint]
sudo yum install kdiff3         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/kdiff3  [On Gentoo Linux]
sudo apk add kdiff3             [On Alpine Linux]
sudo pacman -S kdiff3           [On Arch Linux]
sudo zypper install kdiff3      [On OpenSUSE]    

Puede comparar o fusionar dos o tres archivos o directorios y tiene las siguientes características notables:

  • Indica diferencias línea por línea y carácter por carácter.
  • Soporta fusión automática
  • Editor incorporado para solucionar conflictos de fusión
  • Admite Unicode, UTF-8 y muchos otros códecs
  • Permite imprimir diferencias.
  • Soporte de integración del Explorador de Windows
  • También admite la detección automática mediante la marca de orden de bytes “BOM”
  • Admite la alineación manual de líneas.
  • GUI intuitiva y mucho más

10. TkDif

TkDiff también es un contenedor GUI multiplataforma y fácil de usar para la herramienta de diferencias de Unix, que proporciona una vista en paralelo de las diferencias entre dos archivos de entrada. Puede ejecutarse en Linux, Windows y Mac OS X.

Además, tiene otras características interesantes que incluyen marcadores de diferencias, un mapa gráfico de diferencias para una navegación fácil y rápida y muchas más.

Para instalar TkDiff en Linux, puede utilizar su administrador de paquetes como se muestra.

sudo apt install tkdiff         [On Debian, Ubuntu and Mint]
sudo yum install tkdiff         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/tkdiff  [On Gentoo Linux]
sudo apk add tkdiff             [On Alpine Linux]
sudo pacman -S tkdiff           [On Arch Linux]
sudo zypper install tkdiff      [On OpenSUSE]    
Conclusión

Después de leer esta revisión de algunas de las mejores herramientas de combinación y comparación de archivos y directorios, probablemente desee probar algunas de ellas.

Es posible que estas no sean las únicas herramientas de diferenciación disponibles que puede encontrar en Linux, pero se sabe que ofrecen algunas de las mejores características. Es posible que también desee informarnos sobre cualquier otra herramienta de diferenciación que haya probado y crea que merece la pena. ser mencionado entre los mejores.