Инструмент сравнения файлов и каталогов?

Я ищу что-то, что будет сравнивать каталоги и файлы, как это делает Beyond Compare для Windows.

Это в основном для использования системы управления версиями, но мне нужно использовать его и для развертывания.

Слияниеinstall meld

Meld - это инструмент, который может сравнивать и объединять файлы и каталоги. Это графический интерфейс, аналог стандартного diff install diffutils и patch install patch инструменты командной строки. (См. мужская разница и мужской патч для получения более подробной информации о них)

enter image description here

Кроме того, множество систем управления версиями (таких как bzr install bzr-gtk или git install git) имеют возможность создавать различия между версиями.

Дифф - твой друг.

diff -ur path1 path2

Это позволит сравнить все файлы, которые являются общими для path1 и path2.

Если вы измените -ur к -urN тогда это также покажет содержимое файлов, которые присутствуют только в одном из путей.

"Beyond Compare" также доступен для Linux. Проверьте их URL для загрузки.
Их немецкий сайт находится по адресу http://www.beyondcompare.de/.

Используйте diff команда:

diff -u file1 file2

diff -u выбирает формат с несколькими строками контекста. Равнина diff file1 file2 перечислены только отличающиеся строки. Есть еще много вариантов для управления форматом вывода, игнорирования различий только с пробелами и т.д.

Если вы хотите записать выходные данные в файл, перенаправьте его:

diff -u file1 file2 >file1-file2.diff

Командир гномовinstall Gnome Commander

Интерфейс, возможно, и не очень сексуальный, но он чрезвычайно мощный!

alt text

И если вы привыкли к другим * Commander (например, Norton или им подобным), вы не потеряетесь.

Инструменты командной строки

Вдохновленный эта запись в блоге.

разница

Список различных файлов:

diff -qr folder1 folder2

Перечисление также содержимого:

diff -Naur folder1 folder2

rsync

Если эти два каталога находятся не на одном компьютере, rsync возможно, это самое простое решение. Обычно rsync используется для синхронизации каталогов, но вы можете запустить его в подробном и сухом режиме, поэтому в нем будут перечислены только файлы, которые необходимо будет изменить.

rsync -rvnc --delete folder1 server:/path/to/folder2

Ты можешь оммит c если вы хотите сравнить файлы на основе временных меток и размеров файлов, чтобы ускорить все:

rsync -rvn --delete folder1 server:/path/to/folder2

KDiff3 install kdiff3

Это графический интерфейс для diff для пользователей KDE (или, если вы не возражаете против использования Qt apps).

kdiff3

Существует также дирдифф install dirdiff для каталогов.

Крусадерinstall krusader

Krusader - это бесплатный инструмент (доступный в Центре программного обеспечения), который показывает содержимое папок в сравнении, и вы можете синхронизировать его с множеством различных опций. Вы можете фильтровать во время синхронизации и сравнения.

Krusader

Чтобы сравнить содержимое файла, вы просто отмечаете два файла, выбираете "файл" и "сравнить содержимое", и они сравниваются по буквам. инструментом сравнения по умолчанию, используемым krusader, является инструмент KDE по умолчанию "Компаре". Вы можете настроить krusader на использование любого другого инструмента сравнения, например, одного из приведенных выше.

Это самое полное решение, которое я когда-либо находил, и оно очень удобно.И он поддерживает все функциональные клавиши, используемые midnight commander (синтаксис norton commander).

Может быть Слияние это то, что вы ищете. Или здесь есть несколько других альтернатив.

Я узнал о хашдип две недели назад. И у него есть несколько сильных преимуществ:

  • В отличие от meld, это хорошо работает для очень больших папок. Где meld становится чрезвычайно медленным, а пользовательский интерфейс перестает отвечать (блокируется), hashdeep просто работает с постоянной скоростью
  • В отличие от rsync, hashdeep обнаруживает перемещенные файлы - файлы с тем же содержимым, только в другом каталоге.

Подробный вывод выглядит следующим образом:

...foo/bar.txt: Known file not usedx/foo/M0824_2L.JPG: Moved from y/P1010998.JPGhashdeep: Audit failed   Input files examined: 0  Known files expecting: 0          Files matched: 6233Files partially matched: 0            Files moved: 3695        New files found: 19257  Known files not found: 4713

Было бы удобно, если бы ** Графический инструмент ** позволял ** скрывать папки и файлы, которые идентичны **. Это значительно облегчило бы концентрацию на нечетных папках и файлах. Кто-нибудь знает инструмент, который поддерживает эту функцию?

Не знаком с Beyond Compare. Для этого используйте Total Commander в Windows. Он работает под управлением Wine, и я использую его таким образом в Mac. В Linux я использую Krusader, у которого есть каталоги синхронизации, похожие на Total Commander. Или Объедините деревья каталогов в основном с текстовыми файлами.

Вам нужен только список файлов или фактическое содержимое каждого файла?

Мне нужен список файлов и, если возможно, различное содержимое между файлами с одинаковым путем.

Взгляните на [унисон](https://www.cis.upenn.edu /~bcpierce/unison/index.html ). Beyond compare использует подход “универсальный магазин делает все”, в то время как unison фокусируется на обработке обхода дерева, сохранении состояния и распространении изменений, охватывая функции Beyond Compare путем делегирования таких вещей, как diff, 3-стороннее слияние и т.д. к любой вашей любимой программе, работающей на уровне файла. Unison - это бесплатное, очень надежное и зрелое программное обеспечение, способное быстро обнаруживать и синхронизировать огромные деревья через сеть между различными операционными системами и т.д. Сначала прочитайте документ, особенно в Windows.

в emacs есть инструмент сравнения каталогов. Как и все emacs, eye candy - это, ну, “что вообще означает eye candy?”, Но он показывает контекстную справку по клавишам, позволяет несколькими нажатиями клавиш проводить рекурсивный анализ, скрывать идентичные файлы или даже вложенные папки, интерактивно выбирать файлы, чтобы показать различия в цветовой кодировке с различными опциями, интерактивно объединять, распространяйте или выполняйте произвольные изменения в файлах, легко переходите к следующему файлу или каталогу, отслеживая состояние, со всеми обычными средствами редактирования.