Команда diff
используется для сравнения нескольких файлов. Данная утилита умеет сравнивать не только файлы но и папки.
Синтаксис команды diff
diff [опция] имя_файла_1 имя_файла_2
Опции команды diff
Опция | Значение |
-q, —brief | Выводит только различия файлов. |
-s | Выводит различия только при полном совпадении файлов. |
-c, -C | Выводит количество совпадающих строк. |
-u, -U | Выводит количество отличающихся строк. |
-y, —side-by-side | Выводит содержимое в столбцах для сравнения «бок о бок». |
-l, —paginate | Постраничный вывод с поддержкой перелистывания. |
-r, —recursive | Рекурсивное сравнение всех файлов в подкаталогах. |
-i, —ignore-case | Игнорировать регистр символов. |
-b, —ignore-space-change | Игнорировать изменения в изменении пробелов. |
-w, —ignore-all-space | Игнорировать все пробелы. |
-B, —ignore-blank-lines | Игнорировать пустые строки. |
-Z, —ignore-trailing-space | Игнорировать пробелы в конце строк. |
Инструкции при выводе команды
Инструкция | Значение |
a | Добавление строки. |
d | Удаление строки. |
с | Изменение строки. |
Пример использование команды diff
Сравнение файлов
Для сравнения создадим два файла 1.txt и 2.txt
Содержимое файла 1.txt
1
2
3
4
5
Содержимое файла 2.txt
1
2
3
4
5
test1
test2
Выполнив команду сравнения diff 1.txt 2.txt
мы получим следующий вывод
[usr@unixhost ~]$ diff 1.txt 2.txt
5a,6,7
> test1
> test2
Первая строка в выводе 5a,6,7
говорит о том, что после строки 5 оригинального файла 1.txt по сравнению с 2.txt были добавлены строки 6 и 7 со значениями test1 и test2 . На это указывает инструкция a
.
Сравнение папок
Создадим две папки dir1 и dir2 в которых будут следующие файлы
[usr@unixhost ~]$ ls dir1
1.txt test2.txt test.txt
[usr@unixhost ~]$ ls dir2
1.txt test5.txt
Выполним команду для сравнения содержимого папок diff dir1 dir2
и получим следующий результат
[usr@unixhost ~]$ diff dir1 dir2
Only in dir1: test2.txt
Only in dir2: test5.txt
Only in dir1: test.txt
В выводе команды мы получаем информация о том, что в файлы test.txt и test2.txt находится только в папке dir1
, а файл test5.txt у нас находится только в папке dir2
Более подробную информацию о команде diff
вы можете получить выполним в системе
man diff