Как использовать командную строку macOS для сравнения содержимого двух папок в Терминале
Вы когданибудь хотели быстро сравнить два каталога (папки), чтобы увидеть, какие файлы могут различаться между ними? Существуют также сторонние инструменты с графическим интерфейсом, но на самом деле в каждый Mac встроен бесплатный инструмент сравнения папок; это просто требует быстрой поездки в Терминал, чтобы использовать его. Программа называется diff
и это довольно просто в использовании.
Запустите Терминал (в Приложениях > Утилиты), а затем используйте cd
чтобы перейти в каталог, содержащий папки, которые вы хотите сравнить. (Конечно, папки могут располагаться где угодно, но проще, если они находятся в одной папке.) Оказавшись там, просто запустите эту команду:
diff rq folder1 folder2
Это довольно простая команда с двумя переключателями командной строки (rq
).
- в
r
говоритdiff
для рекурсивного просмотра каждого каталога, включая подкаталоги. - в
q
переключатели в сбореdiff
в кратком режиме. Если мы не установим краткий режим,diff
он не только сообщит вам, какие файлы различаются между двумя папками, но также покажет фактические построчные различия для любых текстовых файлов, которые существуют в обоих местах, но не идентичны. Поскольку нас интересует только сравнение содержимого папок, нам не нужен такой уровень детализации, поэтому мы будем использовать краткий режим, чтобы подавить его.
Вот и все. Вот так это выглядит в действии(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
чтобы прочитать о его полных возможностях.