Cele mai bune 10 instrumente de comparare și diferență de fișiere (Diff) în Linux


În timp ce scriu fișiere de program sau fișiere text normale, programatorii și scriitorii doresc uneori să știe diferența dintre două fișiere sau două versiuni ale aceluiași fișier.

Când comparați două fișiere de computer pe Linux, diferența dintre conținutul lor se numește diferență. Această descriere a luat naștere dintr-o referință la rezultatul diff, binecunoscutul utilitar de comparare a fișierelor din linia de comandă Unix.

Există mai multe instrumente de comparare a fișierelor pe care le puteți utiliza pe Linux și, în această recenzie, ne vom uita la unele dintre cele mai bune instrumente de diferențe bazate pe terminale și GUI de care puteți profita în timp ce scrieți cod sau alte fișiere text.

1. Comanda diff

Îmi place să încep cu instrumentul original de linie de comandă Unix, care vă arată diferența dintre două fișiere de computer. Diff este simplu și ușor de utilizat, vine preinstalat pe majoritatea distribuțiilor Linux, care compară fișierele linie cu linie și arată diferența dintre ele.

Pentru a compara două fișiere și pentru a afișa diferențele.

diff file1.txt file2.txt

Puteți consulta introducerea manuală pentru difer pentru a o utiliza cu ușurință.

man diff

Există câteva pachete pentru instrumentul diff care îi îmbunătățesc funcționalitatea și acestea includ:

Comanda colordiff

Colordiff este un script Perl care produce aceeași ieșire ca și dif, dar cu evidențierea culorilor și a sintaxelor. Are scheme de culori personalizabile.

Puteți instala Colordiff pe sistemele dvs. Linux, folosind instrumente implicite de gestionare a pachetelor numite yum, dnf și apt-get sau apt, după cum se arată.

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]    

Pentru a compara directoare recursiv.

colordiff file1.txt file2.txt

Puteți consulta introducerea manuală pentru colordiff după cum se arată.

man colordiff

Comanda wdiff

Utilitarul wdiff este o comandă front-end la diff folosită pentru a compara fișierele cuvânt cu cuvânt. Acest program este foarte util atunci când comparăm două texte pentru cuvintele modificate și pentru care paragrafele au fost reumplute.

Pentru a instala wdiff pe sistemele dvs. Linux, rulați:

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]    

Pentru a afișa cele două fișiere unul lângă altul, evidențiind diferențele la nivel de cuvânt.

wdiff file1.txt file2.txt

Utilizați manualul wdiff pentru a afla cum să îl utilizați pe Linux.

man wdiff

2. Comanda Vimdiff

Vimdiff funcționează într-un mod avansat în comparație cu utilitarul diff, care permite unui utilizator să editeze până la patru versiuni ale unui fișier, arătând diferențele dintre acestea. Când îl rulați, Vimdiff deschide două sau trei sau patru fișiere folosind editorul de text Vim.

Pentru a utiliza vimdiff, va trebui să aveți Vim instalat pe sistemul dvs., dar dacă nu este instalat, îl puteți instala folosind managerul de pachete.

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]    

Pentru a compara două fișiere folosind vimdiff, ar trebui să executați următoarea comandă.

vimdiff file1.txt file2.txt

De asemenea, puteți utiliza vimdiff pentru a compara trei fișiere.

vimdiff file1.txt file2.txt file3.txt

Pentru informații mai detaliate și opțiuni de utilizare, puteți accesa pagina de manual rulând.

man vimdiff

3. sdiff

Comanda sdiff este folosită pentru a compara două fișiere unul lângă altul, evidențiind diferențele dintre ele. Afișează conținutul celor două fișiere în coloane separate, cu linii adăugate prefixate de ">", linii șterse prefixate de "<" și linii comune afișate fără prefixe .

Comanda sdiff vine de obicei cu instalarea standard a majorității distribuțiilor Linux. Cu toate acestea, dacă nu este instalat, îl puteți instala folosind managerul de pachete.

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]    

Pentru a compara două fișiere și pentru a afișa diferențele una lângă alta.

sdiff file1.txt file2.txt

După ce ne-am uitat la instrumentele vechi de diferență, să trecem rapid la unele instrumente de diferență GUI disponibile pe Linux.

4. Compare

Kompare este un instrument grafic de diferențiere și îmbinare care permite utilizatorilor să compare și să vadă diferențele dintre fișiere și, de asemenea, să le îmbine.

Pentru a instala Kompare pe distribuțiile Linux, puteți utiliza managerul de pachete specific sistemului dvs.

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]    

Unele dintre caracteristicile sale includ:

  • Suporta mai multe formate de diferență
  • Suporta compararea directoarelor
  • Acceptă citirea fișierelor de diferențe
  • Interfață personalizabilă
  • Crearea și aplicarea de corecții la fișierele sursă

5. DiffMerge

DiffMerge este o aplicație GUI multiplatformă pentru compararea și îmbinarea fișierelor. Are două motoare de funcționalități, motorul Difer care arată diferența dintre două fișiere și acceptă evidențierea și editarea în interiorul liniilor și un motor Merge care scoate liniile modificate între trei dosare.

Are următoarele caracteristici:

  • Suporta compararea directoarelor
  • Integrarea browserului de fișiere
  • Extrem de configurabil

6. Meld – Instrument Diff

Meld este un instrument ușor de diferențiere și îmbinare a GUI, care permite utilizatorilor să compare fișiere, directoare și programe controlate de versiuni. Construit special pentru dezvoltatori, vine cu următoarele caracteristici:

  • Comparație bidirecțională și tridirecțională a fișierelor și directoarelor
  • Actualizare a comparației fișierelor pe măsură ce un utilizator introduce mai multe cuvinte
  • Ușurează îmbinările prin utilizarea modului de îmbinare automată și a acțiunilor asupra blocurilor modificate
  • Comparații ușoare folosind vizualizări
  • Suportă Git, Mercurial, Subversion, Bazaar și multe altele

Pentru a instala Meld pe Linux, puteți folosi managerul de pachete pentru a-l instala din arhivele oficiale.

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. Diffuse – GUI Diff Tool

Diffuse este un alt instrument popular, gratuit, mic și simplu de diferențiere și îmbinare a GUI, pe care îl puteți folosi pe Linux. Scris în Python, oferă două funcționalități majore, adică: compararea fișierelor și controlul versiunilor, permițând editarea fișierelor și îmbinarea fișierelor și, de asemenea, scoaterea diferenței dintre fișiere.

Pentru a instala Diffuse pe Linux, puteți folosi managerul de pachete așa cum se arată.

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]    

Puteți vizualiza un rezumat de comparație, puteți selecta linii de text din fișiere folosind un cursor al mouse-ului, puteți potrivi linii din fișierele adiacente și puteți edita diferite fișiere.

Alte caracteristici includ:

  • Evidențierea sintaxelor
  • Comenzi rapide de la tastatură pentru o navigare ușoară
  • Suportă anulare nelimitată
  • Suport Unicode
  • Suportă Git, CVS, Darcs, Mercurial, RCS, Subversion, SVK și Monotone

8. XXdiff – Instrumentul Diff și Merge

XXdiff este un instrument gratuit și puternic de comparare și de îmbinare a fișierelor și a directoarelor, care rulează pe sisteme de operare asemănătoare Unix, cum ar fi Linux, Solaris, HP/UX, IRIX și DEC Tru64. O limitare a XXdiff este lipsa de suport pentru fișierele Unicode și editarea inline a fișierelor diff.

Are următoarea listă de caracteristici:

  • Comparație superficială și recursivă a două, trei fișiere sau două directoare
  • Evidențierea diferențelor orizontale
  • Îmbinarea interactivă a fișierelor și salvarea rezultatului rezultat
  • Acceptă revizuiri de îmbinare/poliție
  • Suportă instrumente externe de diferențiere, cum ar fi GNU diff, SIG diff, Cleareddiff și multe altele
  • Extensibil folosind scripturi
  • Complet personalizabil folosind fișiere de resurse plus multe alte caracteristici minore

9. KDiff3 – – Instrument Diff and Merge

KDiff3 este încă un alt instrument de diferențiere și îmbinare multiplatformă, creat din KDevelop, care funcționează pe toate platformele asemănătoare Unix, inclusiv Linux și Mac OS X, Windows.

Pentru a instala KDiff3 pe Linux, puteți utiliza managerul de pachete așa cum se arată.

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]    

Poate compara sau îmbina două până la trei fișiere sau directoare și are următoarele caracteristici notabile:

  • Indică diferențele rând cu rând și caracter cu caracter
  • Suportă îmbinare automată
  • Editor încorporat pentru a face față conflictelor de îmbinare
  • Suportă Unicode, UTF-8 și multe alte codecuri
  • Permite tipărirea diferențelor
  • Suport pentru integrarea Windows Explorer
  • Acceptă, de asemenea, detectarea automată prin marcajul de ordine de octeți „BOM”
  • Acceptă alinierea manuală a liniilor
  • GUI intuitiv și multe altele

10. TkDiff

TkDiff este, de asemenea, un înveliș GUI multi-platformă, ușor de utilizat pentru instrumentul de diff Unix, care oferă o vedere alăturată a diferențelor dintre două fișiere de intrare. Poate rula pe Linux, Windows și Mac OS X.

În plus, are și alte caracteristici interesante, inclusiv marcaje de diferențe, o hartă grafică a diferențelor pentru o navigare ușoară și rapidă și multe altele.

Pentru a instala TkDiff pe Linux, puteți utiliza managerul de pachete așa cum se arată.

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

După ce ați citit această recenzie a unora dintre cele mai bune instrumente de comparare și combinare de fișiere și directoare, probabil că doriți să încercați unele dintre ele.

Este posibil ca acestea să nu fie singurele instrumente de diferență disponibile pe care le puteți găsi pe Linux, dar sunt cunoscute că oferă unele dintre cele mai bune caracteristici, poate doriți, de asemenea, să ne anunțați despre orice alte instrumente de diferență pe care le-ați testat și pe care credeți că merită să le faceți. fi menționat printre cei mai buni.