Как использовать командную строку macOS для сравнения содержимого двух папок с помощью Терминала

Быстро, просто и бесплатно.

1 мин.
Как использовать командную строку macOS для сравнения содержимого двух папок с помощью Терминала

Вы когда-нибудь хотели быстро сравнить две директории (папки), чтобы увидеть, какие файлы могут отличаться друг от друга? Конечно, существуют сторонние инструменты с графическим интерфейсом, но на самом деле бесплатный инструмент сравнения папок встроен в каждый Mac – для его использования нужно лишь перейти в Терминал. Программа называется diff, и пользоваться ею довольно просто.

Запустите Терминал (из меню Утилиты), а затем с помощью команды cd перейдите в каталог, содержащий папки, которые вы хотите сравнить. (Папки, конечно, могут быть расположены где угодно, но проще всего, если они находятся в одной). После этого просто выполните команду:

diff -rq folder1 folder2

Это довольно простая команда с двумя параметрами командной строки:
(-rq).

Ключ r указывает diff просматривать каждый каталог последовательно, включая все подкаталоги.

Переключатель q устанавливает diff в простой режим. Если бы мы не установили его, diff не только сказал бы вам, какие файлы отличаются между двумя папками, но и показал бы фактические различия между строками для любых текстовых файлов, которые существуют в обоих местах, но не являются идентичными.

Учитывая, что нас интересует только сравнение содержимого папок, нам не нужен такой уровень детализации, поэтому мы будем использовать режим brief, чтобы отключить его.

Вот и всё. Как это выглядит в действии (comments_new и comments_old - это две папки, которые мы сравниваем):

% cd phpcode%
diff -rq comments_new comments_old
Only in comments_new: config.php
Only in comments_old: config_old.php
Only in comments_old: functions.inc

Очевидно, что это упрощённый пример, но он работает так же хорошо и для больших папок с сотнями файлов. Конечно, diff способен на гораздо большее, чем простое сравнение папок; введите man diff, чтобы прочитать о его полных возможностях.


Ещё по теме:

Мы в Telegram, на Дзен, в Google News и YouTube