Вопрос или проблема
Как я могу сравнить содержимое каждого файла в двух различных директориях? Я на MacOS X.
DiffMerge может сделать то, что вам нужно:
Выполняет боковое сравнение 2 папок, показывая, какие файлы присутствуют только в одной папке или в другой, а также пары файлов, которые идентичны или различаются.
Графически показывает изменения между двумя файлами. Включает выделение внутри строки и полную поддержку редактирования.
Если у вас установлены инструменты для разработчиков, у вас будет filemerge, который может сравнивать 2 директории. Однако – если у вас его нет, будет довольно проблематично установить его только для этого.
Если вы хотите видеть изменения для каждого файла в визуальной программе сравнения, такой как Kaleidoscope, вы можете сделать так:
diff -rq tantan-s3 tantan-s3-cloudfront | awk '{ print $2 " " $4 }'| xargs -L 1 ksdiff
Команда diff с опцией -q получает список файлов, которые различаются в следующем формате:
Файлы 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 различаются
Команда 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 для каждой пары файлов.
Если вы не против использовать командную строку, вы можете использовать команду ‘diff’ в UNIX.
Пример команды для сравнения с помощью diff может быть таким:
diff -r /my/first/directory /my/second/directory
Это рекурсивно выполнит сравнение на всех общих директориях и файлах между двумя директориями.
Beyond Compare 4 beta теперь также работает на OSX.
Это хороший инструмент сравнения с графическим интерфейсом, который может выполнять сравнение, синхронизацию и слияние для файлов и папок.
Ответ или решение
Сравнение содержимого файлов в двух разных директориях может быть важной задачей в IT, особенно для разработчиков, системных администраторов и технических специалистов. В данной статье мы рассмотрим несколько способов достижения этой цели на macOS, включая графические и командные инструменты.
1. Использование DiffMerge
DiffMerge — это мощный инструмент, который позволяет выполнять побочное сравнение двух папок. Он не только выявляет, какие файлы находятся только в одной из папок, но и показывает одинаковые и различные файлы. Программа предоставляет графический интерфейс, что облегчает восприятие изменений. Вы можете скачать DiffMerge с официального сайта SourceGear.
2. FileMerge и Xcode
Если у вас установлены инструменты разработчика (Xcode), вы можете воспользоваться встроенным инструментом FileMerge. Он также предназначен для сравнения директорий и предоставляет удобный графический интерфейс. Однако, если у вас Xcode не установлен, то его установка может занять много времени и места на диске, что может быть неоправданно, если вам нужен инструмент лишь для одной задачи.
3. Использование Kaleidoscope
Kaleidoscope — это еще один удобный графический инструмент для сравнения файлов, который предоставляет возможность визуальной демонстрации изменений. Чтобы использовать его для сравнения содержимого файлов в двух директориях, можно воспользоваться следующим командным запросом в терминале:
diff -rq путь_к_первой_директории путь_ко_второй_директории | awk '{ print $2 " " $4 }' | xargs -L 1 ksdiff
- Команда
diff -rq
выдаст список файлов, отличающихся между двумя директориями, в формате:
Files путь_к_первой_директории/файл и путь_ко_второй_директории/файл differ
awk
используется для форматирования вывода, чтобы оставить только имена файлов.xargs
затем выполняет Kaleidoscope для каждой пары файлов, позволяя вам удобно просмотреть различия.
4. Командная строка: команда diff
Для более технически подкованных пользователей, командная строка предоставляет простое и эффективное решение. Команда diff
— это встроенная команда в UNIX-системах:
diff -r /путь/к/первой/директории /путь/ко/второй/директории
Эта команда выполнит рекурсивное сравнение всех содержимых в двух директориях и выведет список различий.
5. Beyond Compare
Beyond Compare — еще одно мощное приложение, доступное для macOS, которое позволяет сравнивать и синхронизировать файлы и директории. Его можно скачать с официального сайта Scooter Software. Это приложение предоставляет удобный графический интерфейс и поддерживает множество форматов файлов.
Заключение
Сравнение содержимого файлов в двух различных директориях на macOS может быть выполнено различными способами, в зависимости от ваших потребностей и предпочтений. Выбор инструмента зависит от того, хотите ли вы использовать графический интерфейс или командную строку. Рассмотренные решения помогут вам эффективно организовать вашу работу и минимизировать ошибки при управлении файлами.