Mac os сравнение файлов по содержимому

Обновлено: 30.06.2024

Я использую Macbook и ПК, где я синхронизирую 2-3 больших папки между ними с Windows Live Mesh.

Около 5 дней назад мой аккумулятор Macbook скончался, и я только что перешел на Macbook Pro. После запуска Windows Live Mesh выдает ошибку, над которой я работал целый день и не мог разобраться. Мне нужна синхронизация файлов, поэтому я решил обновить свою учетную запись Dropbox до 50 ГБ.

Тем не менее, на моем ПК с Windows наверняка есть несколько файлов, которые были обновлены за этот период, плюс я использовал Macbook Pro для редактирования нескольких файлов в этих папках, прежде чем обновлять Dropbox.

Прошлой ночью я переместил все синхронизированные папки на своем ПК с Windows в Dropbox и позволил синхронизироваться с моим Macbook на ночь. Теперь у меня есть версия синхронизированных папок для Mac на рабочем столе и версия синхронизированных папок для Windows в моем Dropbox.

Есть ли способ сравнить содержимое этих двух папок на моем Macbook Pro, чтобы определить, какие файлы были изменены, и какая папка содержит самую последнюю версию?

3 ответа на вопрос

Просто откройте « Утилиты» Terminal.app и используйте diff команду для сравнения двух папок.

Например, если у вас есть содержимое:

Команда diff test1 test2 выведет:

Только в test1: file2
Двоичные файлы test1 / file1 и test2 / file2 отличаются

Таким образом, вы можете увидеть, какие файлы отличаются друг от друга («двоичным» способом, например, измененным содержимым), или какие файлы не существуют ни в одной папке. Вы можете передать -r опцию рекурсивного поиска в подкаталогах и прочитать man diff более подробную информацию.

В вашем случае это будет что-то вроде: diff -r

Милый, я просто искал эту команду, но не был уверен, была ли она только для добавленных файлов или измененного содержимого. Спасибо! delvec 10 лет назад 0

Если вы устанавливаете инструменты разработки для OS X (через магазин приложений или на диск, поставляемый с вашим компьютером), вы можете использовать приложение FileMerge - также запускаемое через утилиту командной строки opendiff .


В этой записи блога есть вступление со снимками экрана (не мой блог, я нашел его через Google).

Это хорошо, я как-то забыл об этом - должно быть проще для людей, которые любят работать в GUI. slhck 10 лет назад 0

Сравнить папки - лучшая программа, которую я нашел для этой задачи. Он очень прост в использовании и имеет простой графический интерфейс.

На хабре уже было много статей о распределенных системах управления версиями (DVCS), их сравнений, а также сравнений GUI-клиентов для них. Также были обсуждения плагинов к IDE для работы с git и mercurial. Но практически не было информации об инструментах визуального сравнения и разрешения конфликтов слияния.

diff and merge


Недавно я «перескочил» с mercurial (который до сих пор считаю более удобным и логичным) на git, потому что, подавляющее большинство проектов, которые мне интересны, используют git и хостятся на github. В связи с этим, встал вопрос о пересмотре арсенала инструментов, в частности вопрос выбора инструмента визуального сравнения и слияния (diff and merge). Дабы восполнить недостаток информации на хабре, я решил написать этот мини-обзор. Как говориться — по горячим следам.

KDiff3

  • бесплатен;
  • поддерживает трехстороннее слияние;
  • умеет сравнивать директории;
  • с различными кодировками работает нормально;
  • без дополнений не подсвечивает синтаксис.

DiffMerge

  • бесплатен;
  • поддерживает трехстороннее слияние;
  • умеет сравнивать директории.
  • бывают проблемы при работе с кириллицей. Думаю, со временем, исправят.
  • DiffMerge по умолчанию, не поддерживает подсветку синтаксиса языков программирования.

WinMerge

  • Open Source;
  • никаких проблем с кодировками;
  • подсветка синтаксиса без лишних телодвижений;
  • сравнение директорий.
  • инструмент слияния является двусторонним, что может создавать неудобства в некоторых случаях;
  • Windows only.
  • GPL v2;
  • двустороннее и трехстороннее слияние файлов;
  • сравнение директорий;
  • подсветка синтаксиса (при установленном GtkSourceView).
  • для установки под Windows требуется установить Python, GTK+, Glib, GtkSourceView, что не каждому понравиться.

Diffuse

  • GPL;
  • поддержка 2-way, 3-way и n-way (произвольное количество файлов) слияния;
  • подсветка синтаксиса;
  • отлично работает с UTF-8;
  • неограниченная глубина отмен (Undo);
  • удобная навигация по коду.
  • разве что, невозможность сравнивать директории.

TKDiff

  • GPLv2;
  • можно добавлять закладки для различий;
  • с кодировками работает нормально;
  • интерфейс менее удобен и выглядит очень бедно (см. скриншот), чем у других продуктов.
  • нет подсветки синтаксиса;
  • не умеет сравнивать директории.

SmartSynchronize

  • трехстороннее слияние;
  • нет проблем с кодировками;
  • помимо файлов, может сравнивать директории.
  • для коммерческого использования требуется лицензия;
  • подсветка синтаксиса для языков программирования по умолчанию не предусмотрена. Не исключено, что можно как-то сделать.

BeyondCompare

  • трехстороннее слияние;
  • может сравнивать файлы, директории, удаленные директории, архивы, а также MP3-файлы, изображения и др. Но последние пункты — это в принципе не нужный функционал.
  • ShareWare;
  • нет версии под Mac.

Araxis Merge

  • трехстороннее слияние;
  • нет проблем с кодировками;
  • подсвечивает синтаксис;
  • помимо файлов, может сравнивать директории и синхронизировать их;
  • хорошо работает на сравнении больших файлов (гигабайты) и больших директорий;
  • генерация отчётов по результатам сравнения. (если это можно назвать плюсом).
  • ShareWare;
  • нет версии под Linux.

Git и DiffMerge

1) Добавим в директорию c:/Git/libexec/git-core/mergetools/
файл diffmerge следующего содержания:


2) Теперь добавим в файл c:/Users/swipe/.gitconfig
следующие строки:


3) Создадим конфликт и вызовем DiffMerge для его разрешения


tree


diff


conflict


merge

Git и WinMerge

1) Добавим в директорию c:/Git/libexec/git-core/mergetools/
файл winmerge следующего содержания:


Когда Git не может автоматически объединить изменения, происходит конфликт слияния и в конфликтующий файл добавляются маркеры слияния (<<<<<<<, =======, и >>>>>>>). Они необходимы для разрешения конфликта с помощью сторонних инструментов.
Рассмотрим файл readme.txt который образуется в результате выполнения слияния веток master и new в приведенном выше примере:


Мы можем открыть файл конфликтов с помощью программы WinMerge для разрешения конфликта.

open

После этого откроется средство двухстороннего слияния:

winmerge

Исходя из описанной логики перепишем команду слияния merge_cmd следующим образом:

По сути, оба приведенных варианта эквивалентны.

2) Отредактируем .gitconfig

последняя строчка отменяет сохранение backup-файлов в директории репозитория.

3) Создадим конфликт при слиянии двух веток (см. пример с использованием DiffMerge).

Программа BBEdit для Mac позволяет легко находить и идентифицировать различия в файлах с любым совместимым текстовым форматом. Это отличное решение для разработчиков, программистов, писателей и вообще всех, кто часто работает с кодом, скриптами или текстовыми документами и ищет простой способ проверки различий в двух текстовых файлах.

BBEdit, или как найти и сравнить различия в текстовых файлах на Mac

BEdit является одним из самых мощных, быстрых и многофункциональных текстовых редакторов, доступных для Mac.

Как искать и сравнивать различия в текстовых файлах с помощью BBEdit

1. Загрузите BBEdit с сайта разработчика (программа платная, но имеется пробная версия на 30 дней) и установите его;

BBEdit, или как найти и сравнить различия в текстовых файлах на Mac

2. Откройте BBEdit, выберите меню «Search» и нажмите «Find Differences»;

BBEdit, или как найти и сравнить различия в текстовых файлах на Mac

3. Нажмите на кнопку «Файл» рядом с опцией «Слева» (Left) и выберите первый сравниваемый документ. Затем нажмите кнопку «Файл» рядом с опцией «Справа» (Right) и выберите второй документ. После этого нажмите кнопку «Compare»*;

BBEdit, или как найти и сравнить различия в текстовых файлах на Mac

4. Просмотрите различия между двумя файлами. Они будут выделены, а в нижней части окна будет отображен полный список различий;

5. При желании можно нажать «Apply» в нижней части окна для переноса различий из одного документа в другой.

BBEdit, или как найти и сравнить различия в текстовых файлах на Mac

* Обратите внимание, что вы также можете перетаскивать текстовые файлы в окно «Найти различия».

Если вы не можете использовать BBEdit по какой-либо причине (например, из-за проблем с загрузкой или установкой приложения), для сравнения файлов можно использовать инструмент командной строки или программу FileMerge. Если вы используете git, введите «git diff Имя файла.txt». Данные варианты лучше всего подходят для работы с кодом, скриптами и обычным текстом.

Compare & Sync Folders - это простое в использовании приложение для начинающих, имеет возможность тонкой настройки параметров синхронизации для самых взыскательных профессионалов.

Приложение может одновременно синхронизировать несколько пар папок. Используя удобный режим предварительного просмотра, вы можете просмотреть изменения до синхронизации и изменить операцию с файлами, если это необходимо. Compare & Sync Folders предоставляет надежные инструменты для фильтрации файлов и папок, чтобы Вы синхронизировали именно то, что хотите.

Compare & Sync Folders идеально подходит для резервного копирования на внешние носители информации, включая: USB, карты памяти, диски на удаленных компьютерах в вашей сети, папки на Cloud сервисах (Dropbox, и т.д.) При каждом повторном резервном копировании приложение находит и копирует только новые файлы и новые версии файлов, тем самым сокращая время резервного копирования и продлевая срок службы ваших дисков.

У Вас есть терабайт (ТБ) данных для синхронизации? Нет проблем! Compare & Sync Folders оптимизировано для работы с чрезвычайно большим количеством файлов.

Приложение поддерживает двунаправленную синхронизацию!

Пожалуйста, обращайтесь к нам с любыми вопросами, мы очень рады предоставить быстрые ответы и сделать приложение лучше для Вас.

ДЛЯ ПРОФЕССИОНАЛОВ
- 9 режимов синхронизации. Имеет режим двунаправленной синхронизации. Отслеживание удалений, добавлений, изменений в синхронизируемых папках.
- 6 режимов сравнения файлов позволяют синхронизировать файлы на дисках с разными файловыми системами (OS X, FAT32, т.д.).
- 9 режимов файловых операций. Режим предварительного просмотра. Возможность изменять операции с файлами перед синхронизацией, если требуется.
- 5 режимов поиска для элементов таблицы предварительного просмотра (по имени, по пути, по имени и пути, . ).
- 11 режимов фильтрации элементов таблицы предварительного просмотра (отсутствующие & разные, отсутствующие, разные, равные, . ).
- Синхронизация по сети. Возможность автоматического подключения сетевых папок до синхронизации.
- Защита от несанкционированных отключений дисков (папок) во время синхронизации.
- Сохранение последней / всех версий файлов для удаления. В этом режиме вы застрахованы от случайного удаления файлов, и всегда можете восстановить удаленные файлы, даже если папки синхронизированы несколько раз.
- Сравнение файлов с помощью "QuickLook" или "построчное" сравнение перед синхронизацией.
- Отображение выбранных файлов в Finder.
- Возможность открыть выбранные файлы в приложении по умолчанию.
- Выполнение операций с файлами для выбранных элементов таблицы предварительного просмотра.
- Возможность копировать выбранные элементы таблицы предварительного просмотра (отсутствующие, разные, . ) в третью папку (папка C).
- Урегулирование конфликта версий файлов.
- Для каждой пары папок отображается дата и время последней синхронизации.
- Процесс синхронизации регистрируется в журнал.
- Сохранение / загрузка настроек программы во внешний файл.
- Вы можете превратить приложение в удобный файловый менеджер с помощью мощных фильтров для файлов и папок и написания собственного сценария копирования.
- Синхронизация атрибутов подпапок.
- Написание собственных сценариев копирования файлов с помощью Unix команд.

Читайте также: