Докато пишат програмни файлове или нормални текстови файлове, програмистите и писателите понякога искат да знаят разликата между два файла или две версии на един и същи файл.
Когато сравнявате два компютърни файла на Linux, разликата между тяхното съдържание се нарича a диф. Това описание е родено от препратка към изхода на diff, добре познатата помощна програма за сравнение на файлове от командния ред на Unix.

Има няколко инструмента за сравнение на файлове, които можете да използвате в Linux, и в този преглед ще разгледаме някои от най-добрите терминални и GUI инструменти за разлики, от които можете да се възползвате, докато пишете код или други текстови файлове.
1. команда diff
Харесва ми да започна с оригиналния инструмент за команден ред на Unix, който ви показва разликата между два компютърни файла. разл е прост и лесен за използване, идва предварително инсталиран на повечето дистрибуции на Linux, който сравнява файлове ред по ред и извежда разликата между тях.
За да сравните два файла и да покажете разликите.
$ diff file1.txt file2.txt
Можете да проверите ръчното въвеждане за диф за да го използвате лесно.
# man diff

Има някои опаковки за диф инструмент, който подобрява неговата функционалност и те включват:
команда colordiff
Colordiff е Perl скрипт, който произвежда същия резултат като диф, но с подчертаване на цвят и синтаксис. Има персонализирани цветови схеми.
Можете да инсталирате Colordiff на вашите Linux системи, като използвате инструменти за управление на пакети по подразбиране, наречени yum, dnf и apt-get или apt, както е показано.
$ 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]
За рекурсивно сравняване на директории.
$ colordiff file1.txt file2.txt
Можете да проверите ръчното въвеждане за colordiff както е показано.
# man colordiff

Команда wdiff
The wdiff помощната програма е преден край на диф команда, използвана за сравняване на файлове дума по дума. Тази програма е много полезна, когато сравнявате два текста за променени думи и за които параграфите са били попълнени отново.
Да инсталираш wdiff на вашите Linux системи изпълнете:
$ 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]
За да покажете двата файла един до друг, подчертавайки разликите на ниво дума.
$ wdiff file1.txt file2.txt
Използвайте wdiff ръководство за това как да го използвате на Linux.
# man wdiff

2. Команда Vimdiff
Вимдиф работи по усъвършенстван начин в сравнение с диф помощна програма, която позволява на потребителя да редактира до четири версии на файл, като показва техните различия. Когато го стартирате, Вимдиф отваря два или три или четири файла с помощта на текстовия редактор Vim.
Да използвам vimdiffще трябва да имате инсталиран Vim на вашата система, но ако не е инсталиран, можете да го инсталирате с помощта на вашия мениджър на пакети.
$ 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]
За да сравните два файла с помощта на vimdiffще изпълните следната команда.
$ vimdiff file1.txt file2.txt
Можете също да използвате vimdiff за сравняване на три файла.
$ vimdiff file1.txt file2.txt file3.txt
За по-подробна информация и опции за използване можете да получите достъп до страницата с ръководство, като стартирате.
$ man vimdiff

3. sdiff
The sdiff командата се използва за сравняване на два файла един до друг, подчертавайки разликите между тях. Той показва съдържанието на двата файла в отделни колони, с добавени редове с префикс ">"
изтрити редове с префикс от "<"
а общите линии се показват без префикси.
The sdiff командата обикновено идва със стандартната инсталация на повечето Linux дистрибуции. Ако обаче не е инсталиран, можете да го инсталирате с помощта на вашия мениджър на пакети.
$ 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]
За да сравните два файла и да покажете разликите един до друг.
$ sdiff file1.txt file2.txt
След като погледна старата школа диф инструменти, нека бързо да преминем към някои GUI разл инструменти, налични в Linux.
4. В сравнение
В сравнение е графичен инструмент за разлики и сливания, който позволява на потребителите да сравняват и преглеждат разликите между файловете, както и да ги обединяват.
Да инсталираш В сравнение на дистрибуции на Linux можете да използвате мениджъра на пакети, специфичен за вашата система.
$ 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]
Някои от функциите му включват:
- Поддържа множество diff формати
- Поддържа сравнение на директории
- Поддържа четене на разл. файлове
- Персонализиран интерфейс
- Създаване и прилагане на корекции към изходните файлове

5. DiffMerge
DiffMerge е междуплатформено GUI приложение за сравняване и обединяване на файлове. Той има два функционални двигателя, разл двигател, който показва разликата между два файла и поддържа вътрередово подчертаване и редактиране, и a Обединяване двигател, който извежда променените редове между три файла.
Има следните характеристики:
- Поддържа сравнение на директории
- Интегриране на файлов браузър
- Силно конфигурируеми

6. Meld – инструмент за разлика
Стопете е лек GUI инструмент за разлика и сливане, който позволява на потребителите да сравняват файлове, директории плюс програми, контролирани от версии. Създаден специално за разработчици, той се предлага със следните функции:
- Двупосочно и трипосочно сравнение на файлове и директории
- Актуализация на сравнението на файлове, докато потребителят въвежда повече думи
- Улеснява сливането чрез използване на режим на автоматично сливане и действия върху променени блокове
- Лесни сравнения с помощта на визуализации
- Поддържа Git, Mercurial, Subversion, Bazaar плюс много други
Да инсталираш Стопете на Linux можете да използвате вашия мениджър на пакети, за да го инсталирате от официалните хранилища.
$ 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
дифузно е друг популярен, безплатен, малък и прост GUI инструмент за разлика и сливане, който можете да използвате в Linux. Написан на Python, той предлага две основни функции, а именно: сравнение на файлове и контрол на версиите, което позволява редактиране на файлове и обединяване на файлове, а също така извежда разликата между файловете.
Да инсталираш дифузно на Linux можете да използвате вашия мениджър на пакети, както е показано.
$ 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]
Можете да преглеждате обобщение за сравнение, да избирате редове от текст във файлове с помощта на показалеца на мишката, да съпоставяте редове в съседни файлове и да редактирате различни файлове.
Други функции включват:
- Осветяване на синтаксиса
- Клавишни комбинации за лесна навигация
- Поддържа неограничено отмяна
- Поддръжка на Unicode
- Поддържа Git, CVS, Darcs, Mercurial, RCS, Subversion, SVK и Monotone

8. XXdiff – инструмент за разлики и сливане
XXразл е безплатен, мощен инструмент за сравнение и сливане на файлове и директории, който работи на Unix-подобни операционни системи като Linux, Solaris, HP/UX, IRIX и DEC Tru64. Едно ограничение на XXdiff е липсата на поддръжка за Unicode файлове и вградено редактиране на diff файлове.
Има следния списък с функции:
- Плитко и рекурсивно сравнение на два, три файла или две директории
- Открояване на хоризонтална разлика
- Интерактивно обединяване на файлове и запазване на резултата
- Поддържа прегледи на сливане/наблюдение
- Поддържа външни инструменти за разлика като GNU diff, SIG diff, Cleareddiff и много други
- Разширяем с помощта на скриптове
- Напълно персонализиран с помощта на файлове с ресурси плюс много други второстепенни функции

9. KDiff3 – – Инструмент за разлики и сливане
KDiff3 е още един готин, междуплатформен инструмент за разлики и сливане, създаден от KDevelopкойто работи на всички Unix-подобни платформи, включително Linux и Mac OS X, Windows.
Да инсталираш KDiff3 на Linux можете да използвате вашия мениджър на пакети, както е показано.
$ 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]
Той може да сравнява или обедини два до три файла или директории и има следните забележителни характеристики:
- Показва разликите ред по ред и знак по знак
- Поддържа автоматично сливане
- Вграден редактор за справяне с конфликти при сливане
- Поддържа Unicode, UTF-8 и много други кодеци
- Позволява отпечатване на разлики
- Поддръжка за интегриране на Windows Explorer
- Също така поддържа автоматично откриване чрез маркировка за ред на байтове „BOM“
- Поддържа ръчно подравняване на линии
- Интуитивен GUI и много други

10. TkDiff
TkDiff е също междуплатформена, лесна за използване GUI обвивка за Unix diff инструмента, която осигурява изглед един до друг на разликите между два входни файла. Може да работи на Linux, Windows и Mac OS X.
Освен това има някои други вълнуващи функции, включително отметки за разлики, графична карта на разликите за лесна и бърза навигация плюс много други.
Да инсталираш TkDiff на Linux можете да използвате вашия мениджър на пакети, както е показано.
$ 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]
Заключение
След като прочетете този преглед на някои от най-добрите инструменти за сравнение и сливане на файлове и директории, вероятно искате да изпробвате някои от тях.
Това може да не са единствените налични инструменти за разлики, които можете да намерите в Linux, но е известно, че предлагат някои от най-добрите функции, може също да искате да ни уведомите за всички други инструменти за разлики, които сте тествали и смятате, че заслужават да бъдат споменати сред най-добрите.
Публикациите се превеждат автоматично с google translate