Как я могу сравнить содержимое файлов в двух разных директориях?

Вопрос или проблема

Как я могу сравнить содержимое каждого файла в двух различных директориях? Я на 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 для каждой пары файлов.

Я использую “Beyond compare” для этого, и кажется, что эквивалентом на MAC является bbedit

Если вы не против использовать командную строку, вы можете использовать команду ‘diff’ в UNIX.

Пример команды для сравнения с помощью diff может быть таким:

diff -r /my/first/directory /my/second/directory

Это рекурсивно выполнит сравнение на всех общих директориях и файлах между двумя директориями.

Ссылка:
http://www.computerhope.com/unix/udiff.htm

Beyond Compare 4 beta теперь также работает на OSX.
Это хороший инструмент сравнения с графическим интерфейсом, который может выполнять сравнение, синхронизацию и слияние для файлов и папок.

http://www.scootersoftware.com/beta.php?zz=beta4_dl

Ответ или решение

Сравнение содержимого файлов в двух разных директориях может быть важной задачей в 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 может быть выполнено различными способами, в зависимости от ваших потребностей и предпочтений. Выбор инструмента зависит от того, хотите ли вы использовать графический интерфейс или командную строку. Рассмотренные решения помогут вам эффективно организовать вашу работу и минимизировать ошибки при управлении файлами.

Оцените материал
Добавить комментарий

Капча загружается...