Сравнение файлов и каталогов
Команда diff сравнивает текстовые файлы, указанные в качестве аргументов.
Пример 8.33. Поиск отличий в текстовых файлах с помощью diff |
$ ps > ps1.txt
$ ps > ps2.txt
$ diff ps1.txt ps2.txt 3c3
< 3084 pts/0 00:00:00 ps
---
> 3088 pts/0 00:00:00 ps
В примере 8.33 список текущих процессов был выведен в два различных файла. Так как вызов команды ps производился дважды, то PID процессов у этих команд различался. Это и подтверждает вывод команды diff. Оба по- лучившихся файла содержат по три строки. Последние, третьи строки отли- чаются (3c3).
Опция q отменяет вывод отличающихся строк и печатает только сообщение о том, имеются ли отличия. Опция -i применяется в случае, если необходимо игнорировать регистр в сравниваемых файлах.
Часто используемые опции -u и -c выводят информацию, соответственно, в обобщенном (unified) и контекстном (context) форматах (пример 8.34).
Пример 8.34. Опция -u команды diff |
$ diff -u ps1.txt ps2.txt
--- ps1.txt 2009-11-20 23:18:16 +0500
+++ ps2.txt 2009-11-20 23:18:21 +0500
@@ -1,3 +1,3 @@
PID TTY TIME CMD
2164 pts/0 00:00:00 bash
- 3084 pts/0 00:00:00 ps
+ 3088 pts/0 00:00:00 ps
Особенностью этих форматов является вывод информации об именах сравни- ваемых файлов. Эта информация может быть использована для реконструк- ции одного из сравниваемых файлов по-другому с помощью известных отли- чий этих файлов. Для этого используется утилита patch, позволяющая обновлять содержимое файлов с помощью так называемых "заплаток" (patches). Файлы-"заплатки" создаются с помощью утилиты diff, а обновле- ние файлов производится утилитой patch.
Для побайтного сравнения бинарных файлов удобно применять команду cmp. Если же необходимо просто выявить факт отличия файлов, пользуются ко- мандой проверки контрольной суммы sum или же командами вычисления хэш-функций md5sum, sha256sum или подобными.
Дата добавления: 2015-06-12; просмотров: 732;