10 najboljih alata za poređenje datoteka i razlika (Diff) u Linuxu


Dok pišu programske datoteke ili obične tekstualne datoteke, programeri i pisci ponekad žele znati razliku između dvije datoteke ili dvije verzije iste datoteke.

Kada uporedite dvije kompjuterske datoteke na Linuxu, razlika između njihovog sadržaja naziva se diff. Ovaj opis je nastao iz upućivanja na izlaz diff, dobro poznatog Unix uslužnog programa za poređenje datoteka na komandnoj liniji.

Postoji nekoliko alata za poređenje datoteka koje možete koristiti na Linuxu, a u ovoj recenziji ćemo pogledati neke od najboljih alata baziranih na terminalu i GUI diff koje možete iskoristiti dok pišete kod ili druge tekstualne datoteke.

1. diff naredba

Volim da počnem sa originalnim Unix alatom na komandnoj liniji koji vam pokazuje razliku između dve kompjuterske datoteke. Diff je jednostavan i lak za korištenje, dolazi unaprijed instaliran na većini Linux distribucija, koji uspoređuje datoteke red po red i daje razliku između njih.

Za usporedbu dvije datoteke i prikaz razlika.

diff file1.txt file2.txt

Možete pogledati ručni unos za diff da ga lako koristite.

man diff

Postoje neki omoti za diff alat koji poboljšavaju njegovu funkcionalnost, a to uključuje:

colordiff Command

Colordiff je Perl skripta koja proizvodi isti izlaz kao diff, ali sa bojom i isticanjem sintakse. Ima prilagodljive šeme boja.

Možete instalirati Colordiff na svoje Linux sisteme, koristeći zadane alate za upravljanje paketima koji se zovu yum, dnf i apt-get ili apt kao što je prikazano.

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]    

Za rekurzivno upoređivanje direktorija.

colordiff file1.txt file2.txt

Možete provjeriti ručni unos za colordiff kao što je prikazano.

man colordiff

wdiff naredba

Uslužni program wdiff je front-end naredba diff koja se koristi za upoređivanje datoteka na bazi riječi po riječ. Ovaj program je veoma koristan kada se porede dva teksta za promenjene reči i za koje su pasuse ponovo popunjeni.

Da instalirate wdiff na vašim Linux sistemima, pokrenite:

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]    

Za prikaz dva fajla jedan pored drugog, naglašavajući razlike na nivou reči.

wdiff file1.txt file2.txt

Koristite wdiff priručnik kako ga koristiti na Linuxu.

man wdiff

2. Komanda Vimdiff

Vimdiff radi na napredniji način u poređenju sa uslužnim programom diff, koji omogućava korisniku da uređuje do četiri verzije fajla dok pokazuje njihove razlike. Kada ga pokrenete, Vimdiff otvara dvije ili tri ili četiri datoteke pomoću Vim uređivača teksta.

Da biste koristili vimdiff, morat ćete imati instaliran Vim na vašem sistemu, ali ako nije instaliran, možete ga instalirati pomoću svog upravitelja paketa.

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]    

Da biste uporedili dva fajla koristeći vimdiff, izvršili biste sljedeću naredbu.

vimdiff file1.txt file2.txt

Također možete koristiti vimdiff da uporedite tri fajla.

vimdiff file1.txt file2.txt file3.txt

Za detaljnije informacije i opcije korištenja, možete pristupiti stranici priručnika pokretanjem.

man vimdiff

3. sdiff

Komanda sdiff se koristi za upoređivanje dva fajla jedan pored drugog, naglašavajući razlike između njih. Prikazuje sadržaj dvije datoteke u odvojenim kolonama, s dodanim redovima s prefiksom ">", izbrisanim redovima s prefiksom "<" i uobičajenim redovima prikazanim bez ikakvih prefiksa .

Komanda sdiff obično dolazi sa standardnom instalacijom većine Linux distribucija. Međutim, ako nije instaliran, možete ga instalirati pomoću upravitelja paketa.

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]    

Za usporedbu dvije datoteke i prikaz razlika jedna pored druge.

sdiff file1.txt file2.txt

Nakon što smo pogledali diff alate stare škole, pređimo brzo na neke GUI diff alate dostupne na Linuxu.

4. Uporedi

Kompare je grafički alat za razliku i spajanje koji omogućava korisnicima da upoređuju i vide razlike između datoteka i spajaju ih.

Da biste instalirali Kompare na Linux distribucijama, možete koristiti upravitelj paketa specifičan za vaš sistem.

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]    

Neke od njegovih karakteristika uključuju:

  • Podržava više različitih formata
  • Podržava poređenje direktorija
  • Podržava čitanje diff fajlova
  • Prilagodljivo sučelje
  • Kreiranje i primjena zakrpa na izvorne datoteke

5. DiffMerge

DiffMerge je multi-platformska GUI aplikacija za poređenje i spajanje datoteka. Ima dva mehanizma funkcionalnosti, Diff motor koji pokazuje razliku između dva fajla i podržava isticanje i uređivanje unutar reda, i Merge motor koji daje promijenjene linije između tri fajla.

Ima sljedeće karakteristike:

  • Podržava poređenje direktorija
  • Integracija pretraživača datoteka
  • Visoko konfigurabilan

6. Meld – Diff Tool

Meld je lagani GUI alat za razliku i spajanje, koji omogućava korisnicima da upoređuju datoteke, direktorije plus programe kontrolirane verzije. Napravljen posebno za programere, dolazi sa sljedećim karakteristikama:

  • Dvosmjerno i trosmjerno poređenje datoteka i direktorija
  • Ažuriranje poređenja datoteka dok korisnik upisuje više riječi
  • Olakšava spajanje korištenjem načina automatskog spajanja i radnji na promijenjenim blokovima
  • Jednostavna poređenja pomoću vizualizacija
  • Podržava Git, Mercurial, Subversion, Bazaar i mnoge druge

Da biste instalirali Meld na Linux, možete koristiti svoj upravitelj paketa da ga instalirate iz službenih spremišta.

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 je još jedan popularan, besplatan, mali i jednostavan GUI alat za razliku i spajanje koji možete koristiti na Linuxu. Napisan u Pythonu, nudi dvije glavne funkcionalnosti, a to su: poređenje datoteka i kontrola verzija, omogućavajući uređivanje datoteka i spajanje datoteka, kao i izlaz razlike između datoteka.

Da instalirate Diffuse na Linux, možete koristiti svoj upravitelj paketa kao što je prikazano.

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]    

Možete pogledati sažetak poređenja, odabrati redove teksta u datotekama pomoću pokazivača miša, uskladiti linije u susjednim datotekama i urediti različite datoteke.

Ostale karakteristike uključuju:

  • Isticanje sintakse
  • Prečice na tastaturi za jednostavnu navigaciju
  • Podržava neograničeno poništavanje
  • Unicode podrška
  • Podržava Git, CVS, Darcs, Mercurial, RCS, Subverziju, SVK i monoton

8. XXdiff – Alat za razliku i spajanje

XXdiff je besplatan, moćan komparator datoteka i direktorija i alat za spajanje koji radi na operativnim sistemima sličnim Unixu kao što su Linux, Solaris, HP/UX, IRIX i DEC Tru64. Jedno od ograničenja XXdiff-a je nedostatak podrške za Unicode datoteke i inline uređivanje diff datoteka.

Ima sljedeću listu karakteristika:

  • Plitko i rekurzivno poređenje dva, tri fajla ili dva direktorija
  • Horizontalno isticanje razlike
  • Interaktivno spajanje datoteka i pohranjivanje rezultirajućeg izlaza
  • Podržava preglede spajanja/policiju
  • Podržava eksterne diff alate kao što su GNU diff, SIG diff, Cleareddiff i još mnogo toga
  • Proširivo korištenjem skripti
  • Potpuno prilagodljiv koristeći datoteke resursa i mnoge druge manje karakteristike

9. KDiff3 – – Alat za razlikovanje i spajanje

KDiff3 je još jedan cool, višeplatformski alat za razliku i spajanje napravljen od KDevelopa, koji radi na svim platformama sličnim Unixu, uključujući Linux i Mac OS X, Windows.

Da instalirate KDiff3 na Linux, možete koristiti svoj upravitelj paketa kao što je prikazano.

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]    

Može upoređivati ili spajati dvije do tri datoteke ili direktorija i ima sljedeće značajne karakteristike:

  • Označava razlike red po red i znak po karakter
  • Podržava automatsko spajanje
  • Ugrađeni uređivač za rješavanje sukoba spajanja
  • Podržava Unicode, UTF-8 i mnoge druge kodeke
  • Omogućava štampanje razlika
  • Podrška za integraciju Windows Explorera
  • Takođe podržava automatsko otkrivanje putem oznake reda bajtova “BOM”
  • Podržava ručno poravnavanje linija
  • Intuitivni GUI i još mnogo toga

10. TkDiff

TkDiff je također višeplatformski, jednostavan za korištenje GUI omot za Unix diff alat, koji pruža uporedni pregled razlika između dva ulazna fajla. Može raditi na Linux, Windows i Mac OS X.

Osim toga, ima neke druge uzbudljive karakteristike uključujući diff bookmarks, grafičku mapu razlika za jednostavnu i brzu navigaciju i još mnogo toga.

Da biste instalirali TkDiff na Linux, možete koristiti svoj upravitelj paketa kao što je prikazano.

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]    
Zaključak

Nakon što ste pročitali ovu recenziju nekih od najboljih alata za poređenje datoteka i direktorija i alata za spajanje, vjerovatno ćete htjeti isprobati neke od njih.

Ovo možda nisu jedini diff alati koje možete pronaći na Linuxu, ali poznato je da nude neke od najboljih značajki, možda biste htjeli da nam kažete i o bilo kojim drugim diff alatima koje ste testirali i smatrate da zaslužuju biti pomenuti među najboljima.