Команда diff Linux

Опубликовано admin - вт, 04/05/2022 - 14:22

Команда diff позволяет сравнивать два или несколько файлов или каталого Linux. Рассмотрим синтаксис команды, её опции и примеры использования.

Команда diff Linux

Содержание

Синтаксис

Команда diff имеет следующий синтаксис:

diff [опции] файлы или каталоги

После указания опций на вход подаётся два или более файлов или каталогов, после чего происходит их сравнение.

Основные опции

-q
 Напечатать только различаются ли файлы.
-E
Игнорировать изменения, связанные с добавлением символа табуляции в тексте.
-b 
Игнорировать изменения, связанные с добавлением пробелов.
-w
Игнорировать изменения, связанные с добавлением пробелов и табуляции.
-B
Игнорировать новые пустые строки.
-r 
Просматривать каталоги рекурсивно.
-X exclude
Исключить из поиска файлы, имена которых совпадают с шаблонами в файле exclude.
-d 
Исключить ложные срабатывания (пытаться найти наименьший набор изменений).

Примеры использования

Сравнение двух текстовых файлов

Для простого сравнения двух текстовых файлов с именами file1 и file2 следует выполнить в терминале следующую команду:

diff file1 file2

Вывод удобно перенаправить в файл с расширением diff. Для этого используется символ перенаправления потока (>):

diff file1 file2 > changes.diff

Сравнение каталогов, содержащих текстовые файлы

При сравнении двух каталогов (dir1 и dir2, содержащих текстовые файлы к команде добавляется опция -r. Эта опция позволяет выполнять рекурсивный обход файлов в каталогах:

diff -r dir1 dir2 > changes.diff

При наличии в каталогах значительного количества файлов, которые нет необходимости сравнивать, создается отдельный файл с шаблонами (exclude). Содержимое файла может выглядеть примерно так:

Masyanya.exe
*.bak
*.bz2
*.so

Команде даётся указание использования файла exclude при сравнении каталогов:

diff -r -X exclude dir1 dir2 > changes.diff

Для улучшения результата сравнения можно добавить ещё несколько опций:

diff -rwBd -X exclude dir1 dir2 > changes.diff

Дополнительные опции позволяют сравнивать файлы в каталогах dir1 и dir2, игнорируя изменения, связанные с добавлением к шаблонам имен файлов из файла exclude, а также пустых строк, пробелов, табуляции.

Заключение

Таким образом, использование команды diff в Linux не представляет большой сложности для начинающего пользователя. Она позволяет быстро и просто получить качественный результат сравнения файлов или каталогов.

Дополнительную информацию можно получить, выполнив команду:

diff --help

Для пользователей, тяготеющих к графическому интерфейсу, создана программа Meld. Она позволяет наглядно увидеть изменения в файлах.

Поделиться с друзьями