10 najboljih alata za usporedbu i razliku datoteka (Diff) u Linuxu


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

Kada uspoređujete dvije računalne datoteke na Linuxu, razlika između njihovih sadržaja naziva se razlika. Ovaj opis nastao je iz reference na izlaz diff-a, dobro poznatog Unix pomoćnog programa za usporedbu datoteka s naredbenim redom.

Postoji nekoliko alata za usporedbu datoteka koje možete koristiti na Linuxu, au ovoj recenziji pogledat ćemo neke od najboljih alata za diff koji se temelje na terminalu i GUI-ju koje možete iskoristiti dok pišete kod ili druge tekstualne datoteke.

1. naredba diff

Volim započeti s izvornim Unix alatom naredbenog retka koji vam pokazuje razliku između dvije računalne datoteke. Diff je jednostavan i lak za korištenje, dolazi unaprijed instaliran na većini distribucija Linuxa, koji uspoređuje datoteke redak po redak i prikazuje razliku među njima.

Za usporedbu dviju datoteka i prikaz razlika.

diff file1.txt file2.txt

Možete provjeriti ručni unos za diff kako biste ga jednostavno koristili.

man diff

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

naredba colordiff

Colordiff je Perl skripta koja proizvodi isti izlaz kao diff, ali s isticanjem boje i sintakse. Ima prilagodljive sheme boja.

Možete instalirati Colordiff na svoje Linux sustave koristeći zadane alate za upravljanje paketima pod nazivom 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]    

Rekurzivno uspoređivati imenike.

colordiff file1.txt file2.txt

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

man colordiff

Naredba wdiff

Uslužni program wdiff je prednja naredba diff koja se koristi za usporedbu datoteka riječ po riječ. Ovaj program je vrlo koristan kada se uspoređuju dva teksta za promijenjene riječi i za koje su odlomci ponovno popunjeni.

Da biste instalirali wdiff na svoje Linux sustave, 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 dvije datoteke jednu pored druge, ističući razlike na razini riječi.

wdiff file1.txt file2.txt

Koristite wdiff priručnik za korištenje na Linuxu.

man wdiff

2. Naredba Vimdiff

Vimdiff radi na napredniji način u usporedbi s uslužnim programom diff koji korisniku omogućuje uređivanje do četiri verzije datoteke uz prikazivanje njihovih razlika. 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 svom sustavu, ali ako nije instaliran, možete ga instalirati pomoću 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 usporedili dvije datoteke pomoću vimdiff, trebali biste izvršiti sljedeću naredbu.

vimdiff file1.txt file2.txt

Također možete koristiti vimdiff za usporedbu tri datoteke.

vimdiff file1.txt file2.txt file3.txt

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

man vimdiff

3. sdiff

Naredba sdiff koristi se za usporedbu dviju datoteka jednu pored druge, ističući razlike među njima. Prikazuje sadržaj dviju datoteka u zasebnim stupcima, s dodanim redcima s prefiksom ">", izbrisanim redcima s prefiksom "<" i uobičajenim redcima prikazanim bez ikakvih prefiksa .

Naredba sdiff obično dolazi sa standardnom instalacijom većine distribucija Linuxa. 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 dviju datoteka i prikaz razlika jednu pored druge.

sdiff file1.txt file2.txt

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

4. Kompare

Kompare je grafički alat za razlikovanje i spajanje koji korisnicima omogućuje usporedbu i pregled razlika između datoteka te njihovo spajanje.

Da biste instalirali Kompare na distribucije Linuxa, možete koristiti upravitelj paketa specifičan za vaš sustav.

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 značajki uključuju:

  • Podržava više diff formata
  • Podržava usporedbu imenika
  • Podržava čitanje diff datoteka
  • Prilagodljivo sučelje
  • Stvaranje i primjena zakrpa na izvorne datoteke

5. DiffMerge

DiffMerge je višeplatformska GUI aplikacija za usporedbu i spajanje datoteka. Ima dva funkcionalna mehanizma, mehanizam Diff koji pokazuje razliku između dvije datoteke i podržava označavanje unutar retka i uređivanje, i mehanizam Spoji koji ispisuje promijenjene retke između tri datoteke.

Ima sljedeće karakteristike:

  • Podržava usporedbu imenika
  • Integracija preglednika datoteka
  • Visoko konfigurabilan

6. Meld – Diff Alat

Meld je lagani GUI alat za razlikovanje i spajanje, koji korisnicima omogućuje usporedbu datoteka, direktorija i programa kontroliranih verzija. Napravljen posebno za programere, dolazi sa sljedećim značajkama:

  • Dvosmjerna i trosmjerna usporedba datoteka i direktorija
  • Ažuriranje usporedbe datoteka kako korisnik upisuje više riječi
  • Olakšava spajanje korištenjem načina automatskog spajanja i radnji na promijenjenim blokovima
  • Jednostavne usporedbe 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 repozitorija.

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 Alat

Diffuse je još jedan popularan, besplatan, mali i jednostavan GUI alat za razlikovanje i spajanje koji možete koristiti na Linuxu. Napisan u Pythonu, nudi dvije glavne funkcije, to jest: usporedbu datoteka i kontrolu verzija, dopuštajući uređivanje datoteka i spajanje datoteka, a također ispisuje razliku između datoteka.

Da biste instalirali 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 usporedbe, odabrati retke teksta u datotekama pomoću pokazivača miša, uskladiti retke u susjednim datotekama i urediti različite datoteke.

Ostale značajke uključuju:

  • Označavanje sintakse
  • Tipkovnički prečaci za jednostavnu navigaciju
  • Podržava neograničeno poništavanje
  • Unicode podrška
  • Podržava Git, CVS, Darcs, Mercurial, RCS, Subversion, SVK i Monotone

8. XXdiff – Alat za razlikovanje i spajanje

XXdiff je besplatan, moćan alat za usporedbu datoteka i direktorija i spajanje koji radi na operativnim sustavima sličnim Unixu kao što su Linux, Solaris, HP/UX, IRIX i DEC Tru64. Jedno ograničenje XXdiffa je nedostatak podrške za Unicode datoteke i ugrađeno uređivanje diff datoteka.

Ima sljedeći popis značajki:

  • Plitka i rekurzivna usporedba dvije, tri datoteke ili dva direktorija
  • Isticanje vodoravne razlike
  • Interaktivno spajanje datoteka i spremanje rezultirajućeg izlaza
  • Podržava recenzije/nadzor spajanja
  • Podržava vanjske diff alate kao što su GNU diff, SIG diff, Cleareddiff i mnoge druge
  • Proširivo korištenjem skripti
  • Potpuno prilagodljiv pomoću datoteka resursa plus mnoge druge manje značajke

9. KDiff3 – – Alat za razlikovanje i spajanje

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

Da biste instalirali 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 usporediti ili spojiti dvije do tri datoteke ili direktorija i ima sljedeće značajne značajke:

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

10. TkDiff

TkDiff također je međuplatformski GUI omotač za Unix diff alat koji pruža usporedni prikaz razlika između dvije ulazne datoteke. Može raditi na Linux, Windows i Mac OS X.

Dodatno, ima neke druge uzbudljive značajke uključujući oznake razlika, grafičku kartu razlika za jednostavnu i brzu navigaciju i još mnogo toga.

Da biste instalirali TkDiff na Linux, možete koristiti upravitelja paketima 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 usporedbu datoteka i direktorija i spajanje, vjerojatno želite isprobati neke od njih.

Ovo možda nisu jedini dostupni diff alati koje možete pronaći na Linuxu, ali poznato je da nude neke od najboljih značajki, možda biste nas također željeli obavijestiti o svim drugim diff alatima koje ste testirali i za koje mislite da zaslužuju spomenuti među najboljima.