Подскажите, пожалуйста, как я могу сравнить содержимое каждого файла в иерархии двух разных каталогов? Я на платформе MacOS X?
Спасибо.
Подскажите, пожалуйста, как я могу сравнить содержимое каждого файла в иерархии двух разных каталогов? Я на платформе MacOS X?
Спасибо.
Если у вас установлены инструменты разработчика, у вас будет filemerge, который может сравнить 2 каталога. Однако, если у вас его нет, установить его для этого было бы довольно сложно.
Если вы хотите увидеть изменения для каждого файла в программе визуального сравнения, такой как Kaleidoscope, вы можете сделать следующее:
diff -rq tantan-s3 tantan-s3-cloudfront | awk '{ print $2 " " $4 }'| xargs -L 1 ksdiff
Команда diff с параметром -q получает список файлов, которые отличаются в следующем формате:
Files tantan-s3/readme.txt and tantan-s3-cloudfront/readme.txt differ
Files tantan-s3/wordpress-s3/admin-options.html and tantan-s3-cloudfront/wordpress-s3/admin-options.html differ
Files tantan-s3/wordpress-s3/class-plugin-public.php and tantan-s3-cloudfront/wordpress-s3/class-plugin-public.php differ
Files tantan-s3/wordpress-s3/class-plugin.php and tantan-s3-cloudfront/wordpress-s3/class-plugin.php differ
Files tantan-s3/wordpress-s3/config-sample.php and tantan-s3-cloudfront/wordpress-s3/config-sample.php differ
Files tantan-s3/wordpress-s3.php and tantan-s3-cloudfront/wordpress-s3.php differ
Команда awk очищает это, чтобы просто иметь имена файлов:
tantan-s3/readme.txt tantan-s3-cloudfront/readme.txt
tantan-s3/wordpress-s3/admin-options.html tantan-s3-cloudfront/wordpress-s3/admin-options.html
tantan-s3/wordpress-s3/class-plugin-public.php tantan-s3-cloudfront/wordpress-s3/class-plugin-public.php
tantan-s3/wordpress-s3/class-plugin.php tantan-s3-cloudfront/wordpress-s3/class-plugin.php
tantan-s3/wordpress-s3/config-sample.php tantan-s3-cloudfront/wordpress-s3/config-sample.php
tantan-s3/wordpress-s3.php tantan-s3-cloudfront/wordpress-s3.php
Команда xargs с параметром -L 1 выполняет Kaleidascope для каждого набора пар файлов.
DiffMerge может делать то, что вам нужно:
Выполняет параллельное сравнение двух папок, показывая, какие файлы присутствуют только в одном или другом файле, а также пары файлов, которые являются одинаковыми или разными.
Графически показывает изменения между двумя файлами. Включает подсветку внутри строки и полную поддержку редактирования.
Beyond Compare 4 beta теперь работает и на OSX. Это хороший инструмент сравнения с графическим интерфейсом, который может сравнивать, синхронизировать, объединять файлы и папки.
Если вы не возражаете против использования командной строки, вы можете использовать команду UNIX 'diff'.
Примером команды для запуска сравнения с использованием diff может быть:
diff -r /my /first /directory /my /second /directory
Это будет рекурсивно выполнять diff для всех общих каталогов и файлов между двумя каталогами.