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

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

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

145
задан 18.05.2020, 23:10

18 ответов

KDiff3 install kdiff3

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

kdiff3

Существует также dirdiff install dirdiff для каталогов. 1111]

0
ответ дан 18.05.2020, 23:10

Для сравнения файлов

File_1.txt
Line1
Line2

File_2.txt
Line1
Line 2

Вы можете использовать команду cmp :

cmp -b "File_1.txt" "File_2.txt"

вывод будет

a b differ: byte 11, line 2 is  62 2  40  
[1110 ] Для сравнения директорий (ваша потребность):

вы можете использовать команду diff :

diff -r --brief dir1 dir2

man diff

  -r, --recursive
              recursively compare any subdirectories found

   -q, --brief
          report only when files differ

0
ответ дан 18.05.2020, 23:11

Gnome Commander install Gnome Commander

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

alt text

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

0
ответ дан 18.05.2020, 23:12
  • 1
    Я не использовал его для сравнения 2 файлов, но я использовал его, чтобы сказать, какие файлы отличались при сравнении с каталогами. Это особенно полезно при сортировке фотографий ;-) – mlissner 18.05.2020, 23:12

IMHO FreeFileSync очень хорош и полезен, чем Meld. Он быстрый и стабильный, может выполнять синхронизируемые по стоимости затраты, а также может экспортировать результат сравнения в CSV-файл.

Ссылка на Lanchpad

0
ответ дан 18.05.2020, 23:12

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

diff -ur path1 path2

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

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

0
ответ дан 18.05.2020, 23:13
  • 1
    Установлено colordiff и использовано colordiff -ur path1 path2 – Zilverdistel 18.05.2020, 23:14
  • 2
    Не работает в Cygwin. – SevakPrime 18.05.2020, 23:14

Meld install meld

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

enter image description here

Также Многие системы контроля версий (такие как bzr install bzr-gtk или git install git ) имеют возможность создавать различия между версиями.

0
ответ дан 18.05.2020, 23:14
  • 1
    Meld падает каждый раз, когда я хочу выбрать папку: / У меня есть самая последняя версия, доступная в моем репозитории дистрибутива (Ubuntu 14.04) – Jackson 18.05.2020, 23:14
  • 2
    Также отлично работает при сравнении текстовых файлов рядом, или даже скопировать вставки. Лучший интерфейс, который я видел! – lunixbochs 18.05.2020, 23:15
  • 3
    Мелд удивительно. Я использую его в качестве источника контроля различий. – Kailas 18.05.2020, 23:15
  • 4
    Только что попробовал на большую папку - 4 ГБ, 2000 файлов. Функциональность слияния - по желанию. Но для этой папки слияние чрезвычайно медленное, и пользовательский интерфейс не отвечает (блокирует). Используя rsync сейчас. – Mayank Modi 18.05.2020, 23:16
  • 5
    @geekQ как быстрая альтернатива, способная мгновенно обрабатывать столько папок, сколько вам нужно, см. beyond compare ниже. превосходит Мельд Имхо – deceze 18.05.2020, 23:16

Eclipse IDE немного тяжеловесен, если вы просто проводите сравнение, но, помимо прочего, он хорошо справляется с этой задачей. Вы можете выбрать 2 проекта, пути или файлы и сравнить их друг с другом, а также синхронизировать с серверами контроля версий.

0
ответ дан 18.05.2020, 23:14

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

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

Подробный вывод похож на:

...
foo/bar.txt: Known file not used
x/foo/M0824_2L.JPG: Moved from y/P1010998.JPG

hashdeep: Audit failed
   Input files examined: 0
  Known files expecting: 0
          Files matched: 6233
Files partially matched: 0
            Files moved: 3695
        New files found: 19257
  Known files not found: 4713
0
ответ дан 18.05.2020, 23:15

Вы можете попробовать meld .

Это репозитории и предоставляет графический интерфейс для сравнения файлов или папок.

0
ответ дан 18.05.2020, 23:15
  • 1
    Meld - это графический интерфейс для diff, кстати. – Alexis Wilke 18.05.2020, 23:16

Попробуйте также FreeFileSync . Имеет неплохой интерфейс, приемлемую скорость сравнения, хорошую фильтрацию результатов сравнения, различные способы синхронизации. Он поставляется с инструментом мониторинга папок (RealTimeSync), который может запускать FreeFileSync (фактически любую команду или сценарий) при изменении этой конкретной папки (или папок) или файлов внутри. Действительно стоит попробовать.

Больше информации об этом здесь или здесь , где у вас есть PPA , также

На их странице, ключевые особенности:

Сравнивайте файлы (в порядке байтов или по дате) и синхронизируйте их.

Нет ограничений: можно синхронизировать произвольное количество файлов.

Поддержка Unicode.

Поддержка сети.

Встроенная поддержка очень длинных имен файлов (более MAX_PATH = 260 символов).

База данных синхронизации для распространения удаленных файлов и обнаружения конфликтов

Поддержка нескольких пар папок с различной конфигурацией

Полная поддержка символических ссылок Windows / Linux и точек соединения Windows.

Lean & amp; легко доступный пользовательский интерфейс: высоко оптимизирован для скорости и огромных массивов данных.

Алгоритмы полностью написаны на C ++.

Все индикаторы выполнения оптимизированы для максимальной производительности!

Создание пакетных заданий для автоматической синхронизации с или без графического интерфейса.

Сосредоточьтесь на удобстве использования:

Только необходимые функции в пользовательском интерфейсе: нет перегруженных меню или значков джунглей.

Выбрать все папки с помощью перетаскивания падение.

Последняя использованная конфигурация и настройки экрана сохраняются автоматически.

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

Дважды щелкните, чтобы запустить внешнее приложение (например, показать файл в проводнике Windows)

Копировать и amp; вставьте все данные сетки в виде текста

Удалите лишние / временные файлы непосредственно в основной сетке.

Щелкните правой кнопкой мыши контекстное меню.

Полная информация о состоянии и отчеты об ошибках

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

Поддержка файлов размером более 4 ГБ.

Возможность перемещать файлы в корзину вместо удаления / перезаписи.

Игнорировать каталоги "\ RECYCLER" и "\ System Volume Information" с фильтром по умолчанию. (Только для Windows)

Локализованные версии доступны для многих языков.

Удалить перед копированием: избегайте нехватки места на диске для больших заданий синхронизации.

Функциональность фильтра для включения / исключения файлов из синхронизации (без необходимости повторного сравнения!).

Временно включать / исключать определенные файлы из синхронизации.

Автоматически обрабатывать изменения летнего времени на томах FAT / FAT32.

Доступна портативная версия (выбирается через установщик).

Родная 64-битная версия.

Проверять наличие обновлений из FreeFileSync автоматически.

Скопируйте заблокированные файлы с помощью службы теневого копирования томов Windows. (Только для Windows)

Создание регулярных резервных копий с макросами% time%,% date% в именах каталогов

Копирование файлов и времени создания / доступа / изменения папок при синхронизации

Дополнительно стратегия блокировки, позволяющая использовать несколько процессов синхронизации (например, несколько устройств записи, один и тот же сетевой ресурс)

Я бы добавил, что он может управлять удаленными файлами, перемещая их в корзину или папку, указанную пользователем. Отметим один недостаток: программная документация в основном ориентирована на Windows, а не на Linux. Но он хорошо работает.

0
ответ дан 18.05.2020, 23:16

Krusader install krusader

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

Krusader

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

Это самое полное решение, которое я когда-либо нашел, и это очень удобно. И он поддерживает все функции keybindungs, используемые Midnight Commander (синтаксис Norton Commander).

0
ответ дан 18.05.2020, 23:16
  • 1
    Вы также можете использовать & quot; Инструменты - > Синхронизировать каталоги & quot; чтобы получить рекурсивные файлы изменяет представление двух панелей каталогов. – Peter Mortensen 18.05.2020, 23:17
  • 2
    к сожалению, синхронизатор в krusader не поддерживается: bugs.kde.org/show_bug.cgi?id=270150#c7 . Есть ли альтернатива, которая активно поддерживается? – Schwann 18.05.2020, 23:17
  • 3
    @ rubo77: эта ошибка была исправлена. – Max 18.05.2020, 23:18

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

diff -u file1 file2

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

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

diff -u file1 file2 >file1-file2.diff
0
ответ дан 18.05.2020, 23:17

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

0
ответ дан 18.05.2020, 23:18

«Beyond Compare» также доступна для Linux.

Проверьте их URL для загрузки: http://www.scootersoftware.com/download.php

0
ответ дан 18.05.2020, 23:18
  • 1
    Beyond Compare особенно полезен при выполнении ssh (с ключом или паролем) для удаленного хоста и сравнении его с локальной копией. – Ectropy 18.05.2020, 23:19

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

0
ответ дан 18.05.2020, 23:19

Кроссплатформенный, легкий, без суеты функции сохранения профиля делают Jfilesync моим лучшим выбором

0
ответ дан 18.05.2020, 23:19

Хороший способ сделать это сравнение - использовать « find » с « md5sum », а затем « diff ».

Пример:

Используйте find, чтобы вывести список всех файлов в каталоге, затем вычислить хэш md5 для каждого файла и передать его в файл:

$find /dir1/ -type f -exec md5sum {} \; > dir1.txt

Выполните ту же процедуру, чтобы другой каталог:

$find /dir2/ -type f -exec md5sum {} \; > dir2.txt

Затем сравните результаты двух файлов с «diff»:

$diff dir1.txt dir2.txt

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

Еще один хороший способ выполнить работу - использовать git

git diff --no-index dir1/ dir2/

С уважением!

0
ответ дан 18.05.2020, 23:20

Вы можете использовать diffuse:

sudo apt-get install diffuse
diffuse file1 file2
0
ответ дан 18.05.2020, 23:20
  • 1
    Я часто использую Diffuse для одной функции убийцы - возможность вручную устанавливать привязки слияния. Это не делает каталоги (пока), но для отдельных и грязных различий, функция якорей является удивительной. – pdwalker 18.05.2020, 23:21

Теги

Похожие вопросы