Ricerca nel sito web

10 migliori strumenti di confronto e differenza di file (Diff) in Linux


Durante la scrittura di file di programma o normali file di testo, programmatori e scrittori a volte desiderano conoscere la differenza tra due file o due versioni dello stesso file.

Quando confronti due file di computer su Linux, la differenza tra i loro contenuti viene chiamata diff. Questa descrizione nasce da un riferimento all'output di diff, la nota utility Unix per il confronto dei file da riga di comando.

Esistono diversi strumenti di confronto dei file che puoi utilizzare su Linux e in questa recensione esamineremo alcuni dei migliori strumenti di confronto basati su terminale e GUI di cui puoi trarre vantaggio durante la scrittura di codice o altri file di testo.

1. Comando diff

Mi piace iniziare con lo strumento da riga di comando originale di Unix che mostra la differenza tra due file di computer. Diff è semplice e facile da usare, è preinstallato sulla maggior parte delle distribuzioni Linux, confronta i file riga per riga e restituisce la differenza tra loro.

Per confrontare due file e visualizzare le differenze.

diff file1.txt file2.txt

Puoi controllare l'inserimento manuale di diff per utilizzarlo facilmente.

man diff

Esistono alcuni wrapper per lo strumento diff che ne migliorano la funzionalità e questi includono:

comando colordiff

Colordiff è uno script Perl che produce lo stesso output di diff, ma con evidenziazione del colore e della sintassi. Ha combinazioni di colori personalizzabili.

Puoi installare Colordiff sui tuoi sistemi Linux, utilizzando gli strumenti di gestione dei pacchetti predefiniti chiamati yum, dnf e apt-get o apt come mostrato.

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]    

Per confrontare le directory in modo ricorsivo.

colordiff file1.txt file2.txt

Puoi controllare l'immissione manuale di colordiff come mostrato.

man colordiff

comando wdiff

L'utilità wdiff è un comando front-end per diff utilizzato per confrontare i file parola per parola. Questo programma è molto utile quando si confrontano due testi per le parole modificate e per i quali i paragrafi sono stati riempiti.

Per installare wdiff sui tuoi sistemi Linux, esegui:

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]    

Per visualizzare i due file affiancati, evidenziando le differenze a livello di parola.

wdiff file1.txt file2.txt

Usa il manuale wdiff per sapere come usarlo su Linux.

man wdiff

2. Comando Vimdiff

Vimdiff funziona in modo avanzato rispetto all'utilità diff, che consente a un utente di modificare fino a quattro versioni di un file mostrandone le differenze. Quando lo esegui, Vimdiff apre due o tre o quattro file utilizzando l'editor di testo Vim.

Per utilizzare vimdiff, dovrai avere Vim installato sul tuo sistema, ma se non è installato, puoi installarlo utilizzando il tuo gestore pacchetti.

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]    

Per confrontare due file utilizzando vimdiff, esegui il seguente comando.

vimdiff file1.txt file2.txt

Puoi anche utilizzare vimdiff per confrontare tre file.

vimdiff file1.txt file2.txt file3.txt

Per informazioni più dettagliate e opzioni di utilizzo, è possibile accedere alla pagina manuale eseguendo.

man vimdiff

3. sdiff

Il comando sdiff viene utilizzato per confrontare due file affiancati, evidenziando le differenze tra loro. Visualizza il contenuto dei due file in colonne separate, con righe aggiunte con prefisso ">", righe eliminate con prefisso "<" e righe comuni visualizzate senza prefisso .

Il comando sdiff in genere viene fornito con l'installazione standard della maggior parte delle distribuzioni Linux. Tuttavia, se non è installato, puoi installarlo utilizzando il gestore pacchetti.

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]    

Per confrontare due file e visualizzare le differenze fianco a fianco.

sdiff file1.txt file2.txt

Dopo aver esaminato gli strumenti diff della vecchia scuola, passiamo rapidamente ad alcuni strumenti diff della GUI disponibili su Linux.

4. Confronta

Kompare è uno strumento grafico di confronto e unione che consente agli utenti di confrontare e visualizzare le differenze tra file e anche di unirli.

Per installare Kompare sulle distribuzioni Linux, puoi utilizzare il gestore pacchetti specifico per il tuo 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]    

Alcune delle sue caratteristiche includono:

  • Supporta più formati differenziali
  • Supporta il confronto delle directory
  • Supporta la lettura di file diff
  • Interfaccia personalizzabile
  • Creazione e applicazione di patch ai file sorgente

5. DiffUnisci

DiffMerge è un'applicazione GUI multipiattaforma per confrontare e unire file. Ha due motori di funzionalità, il motore Diff che mostra la differenza tra due file e supporta l'evidenziazione e la modifica intra-linea, e un motore Unisci che restituisce le linee modificate tra tre file.

Ha le seguenti caratteristiche:

  • Supporta il confronto delle directory
  • Integrazione del browser di file
  • Altamente configurabile

6. Combinazione – Strumento Diff

Meld è uno strumento leggero di differenza e unione della GUI, che consente agli utenti di confrontare file, directory e programmi controllati dalla versione. Costruito appositamente per gli sviluppatori, include le seguenti funzionalità:

  • Confronto a due e tre vie di file e directory
  • Aggiornamento del confronto dei file man mano che un utente digita più parole
  • Semplifica le unioni utilizzando la modalità di unione automatica e le azioni sui blocchi modificati
  • Confronti facili utilizzando visualizzazioni
  • Supporta Git, Mercurial, Subversion, Bazaar e molti altri

Per installare Meld su Linux, puoi utilizzare il tuo gestore pacchetti per installarlo dai repository ufficiali.

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. Diffuso – Strumento Diff. GUI

Diffuse è un altro strumento di diff e unione GUI popolare, gratuito, piccolo e semplice che puoi utilizzare su Linux. Scritto in Python, offre due funzionalità principali, ovvero: confronto dei file e controllo della versione, consentendo la modifica dei file e l'unione di file e anche l'output della differenza tra i file.

Per installare Diffuse su Linux, puoi utilizzare il gestore pacchetti come mostrato.

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]    

È possibile visualizzare un riepilogo del confronto, selezionare righe di testo nei file utilizzando il puntatore del mouse, abbinare righe in file adiacenti e modificare file diversi.

Altre caratteristiche includono:

  • Evidenziazione della sintassi
  • Scorciatoie da tastiera per una facile navigazione
  • Supporta annullamenti illimitati
  • Supporto Unicode
  • Supporta Git, CVS, Darcs, Mercurial, RCS, Subversion, SVK e Monotone

8. XXdiff: strumento Diff e unione

XXdiff è uno strumento gratuito e potente per la comparazione e l'unione di file e directory che funziona su sistemi operativi simili a Unix come Linux, Solaris, HP/UX, IRIX e DEC Tru64. Una limitazione di XXdiff è la mancanza di supporto per i file Unicode e la modifica in linea dei file diff.

Ha il seguente elenco di funzionalità:

  • Confronto superficiale e ricorsivo di due, tre file o due directory
  • Evidenziazione della differenza orizzontale
  • Unione interattiva di file e salvataggio dell'output risultante
  • Supporta l'unione di revisioni/polizie
  • Supporta strumenti di confronto esterni come GNU diff, SIG diff, Cleareddiff e molti altri
  • Estendibile tramite script
  • Completamente personalizzabile utilizzando file di risorse oltre a molte altre funzionalità minori

9. KDiff3 – – Strumento di confronto e unione

KDiff3 è un altro fantastico strumento di confronto e unione multipiattaforma realizzato da KDevelop, che funziona su tutte le piattaforme simili a Unix inclusi Linux e Mac OS X, Windows.

Per installare KDiff3 su Linux, puoi utilizzare il gestore pacchetti come mostrato.

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]    

Può confrontare o unire da due a tre file o directory e presenta le seguenti caratteristiche degne di nota:

  • Indica le differenze riga per riga e carattere per carattere
  • Supporta l'unione automatica
  • Editor integrato per gestire i conflitti di unione
  • Supporta Unicode, UTF-8 e molti altri codec
  • Permette la stampa delle differenze
  • Supporto per l'integrazione di Esplora risorse
  • Supporta anche il rilevamento automatico tramite byte-order-mark "BOM"
  • Supporta l'allineamento manuale delle linee
  • GUI intuitiva e molto altro ancora

10.TkDiff

TkDiff è anche un wrapper GUI multipiattaforma e facile da usare per lo strumento diff di Unix, che fornisce una vista affiancata delle differenze tra due file di input. Può essere eseguito su Linux, Windows e Mac OS X.

Inoltre, ha alcune altre interessanti funzionalità tra cui segnalibri diff, una mappa grafica delle differenze per una navigazione facile e veloce e molto altro ancora.

Per installare TkDiff su Linux, puoi utilizzare il gestore pacchetti come mostrato.

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]    
Conclusione

Dopo aver letto questa recensione di alcuni dei migliori comparatori di file e directory e strumenti di unione, probabilmente vorrai provarne alcuni.

Questi potrebbero non essere gli unici strumenti di diff disponibili che puoi trovare su Linux, ma sono noti per offrire alcune delle migliori funzionalità, potresti anche voler farci sapere di eventuali altri strumenti di diff là fuori che hai testato e ritieni meritino di essere utilizzati. essere menzionato tra i migliori.