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

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

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

154
задан 4 April 2014 в 07:00

19 ответов

Meldinstall meld

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

enter image description here

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

177
ответ дан 4 April 2014 в 07:00

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

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  

Для сравнения каталогов (ваши потребности):

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

diff -r --brief dir1 dir2

man diff

  -r, --recursive
              recursively compare any subdirectories found

   -q, --brief
          report only when files differ
0
ответ дан 4 April 2014 в 07:00

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

Lanchpad link

1
ответ дан 4 April 2014 в 07:00

можно попробовать meld.

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

2
ответ дан 4 April 2014 в 07:00

Я узнал о 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
5
ответ дан 4 April 2014 в 07:00

Вы можете использовать диффузный (только для файлов, а не для каталогов):

sudo apt-get install diffuse
diffuse file1 file2
3
ответ дан 4 April 2014 в 07:00

Хороший способ провести это сравнение - использовать " 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

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

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

git diff --no-index dir1/ dir2/

С уважением!

4
ответ дан 4 April 2014 в 07:00

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

6
ответ дан 4 April 2014 в 07:00

KDiff3 install kdiff3

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

kdiff3

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

9
ответ дан 4 April 2014 в 07:00

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

1
ответ дан 4 April 2014 в 07:00

Krusaderinstall krusader

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

Krusader

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

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

9
ответ дан 4 April 2014 в 07:00

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

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

Ключевые функции:

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

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

Поддержка Unicode.

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

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

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

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

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

Бережливый и легкодоступный пользовательский интерфейс: Высоко оптимизированы для скорости и огромных наборов данных.

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

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

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

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

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

Выберите все папки перетаскиванием.

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

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

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

Скопируйте и вставьте все данные сетки в виде текста

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3
ответ дан 4 April 2014 в 07:00

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

На основе этой записи в блоге .

diff

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

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
11
ответ дан 4 April 2014 в 07:00

Gnome Commanderinstall Gnome Commander

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

alt text

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

12
ответ дан 4 April 2014 в 07:00

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

diff -u file1 file2

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

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

diff -u file1 file2 >file1-file2.diff
13
ответ дан 4 April 2014 в 07:00

Diff - ваш друг.

diff -ur path1 path2

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

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

46
ответ дан 4 April 2014 в 07:00

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

22
ответ дан 4 April 2014 в 07:00

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

4
ответ дан 4 April 2014 в 07:00

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

0
ответ дан 4 April 2014 в 07:00

Другие вопросы по тегам:

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