Заметки программиста

Сравнение файлов и каталогов

Для глубокой работы в терминале есть несколько мощных инструментов в зависимости от вашей конечной цели.

1. Только имена различающихся файлов (diff)

Если вам нужен чистый список без лишнего текста, используйте краткий режим:

diff -rq /путь/к/папке1 /путь/к/папке2
-r — заходить во все подпапки.-q — выводить только имена несовпадающих файлов.

2. Подробный анализ содержимого (diff с подсветкой)

Если папки текстовые (например, с кодом) и нужно увидеть, что именно изменилось внутри файлов:

diff -rNu /путь/к/папке1 /путь/к/папке2 | colordiff
-N — считает отсутствующие файлы пустыми (показывает их содержимое как добавленное).-u — выводит изменения в удобном формате Unified Diff.colordiff — утилита для раскраски вывода (установка: sudo apt install colordiff).

3. Интерактивное сравнение в консоли (cdiff или icdiff)

Для наглядного сравнения двух папок «сторона к стороне» прямо в терминале отлично подходит icdiff (установка: sudo apt install icdiff):

icdiff -r /путь/к/папке1 /путь/к/папке2
  • Показывает два файла рядом.
  • Подсвечивает цветом измененные строки.

4. Проверка размера и контрольных сумм (rsync)

Если папки огромные (бинарные файлы, видео, фото) и нужно быстро узнать, какие файлы отличаются по размеру или дате:

rsync -rvn --size-only /путь/к/папке1/ /путь/к/папке2
  • -n — режим «dry run» (симуляция). Команда ничего не скопирует, а только покажет список различий.
  • Важно: косая черта / в конце первого пути обязательна.