Я ищу что-то, что будет сравнивать каталоги и файлы, как Beyond Compare для Windows.
Это в основном для использования контроля источника, но мне нужно использовать его и для развертывания.
Meld - это инструмент, который может сравнивать и объединять файлы и каталоги. Это GUI аналог стандартных diff
и patch
command line tools. (Более подробно об этом см. man diff и man patch)
Кроме того, многие системы управления источником (такие как bzr
или git
) имеют возможность создавать различия между версиями.
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
IMHO FreeFileSync очень хорош и полезнее, чем Meld. Она быстрая и стабильная, может выполнять выполнимые по стоимости синхронизации, а также может экспортировать результат сравнения в csv файл.
можно попробовать meld.
Это репозитории и предоставляет графический интерфейс для сравнения файлов или папок.
Я узнал о 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
Вы можете использовать диффузный (только для файлов, а не для каталогов):
sudo apt-get install diffuse
diffuse file1 file2
Хороший способ провести это сравнение - использовать " 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/
С уважением!
Это графический фронт-енд, который отличается для пользователей KDE (или если Вы не возражаете использовать приложения Qt).
Также существует dirdiff для каталогов.
Eclipse IDE немного тяжеловесна, если вы просто делаете сравнения, но, кроме всего прочего, она хорошо справляется с этой задачей. Вы можете выбрать 2 проекта, пути или файла и сравнить их друг с другом, а также синхронизировать с серверами управления исходными текстами.
Krusader - это бесплатный инструмент (доступный в Центре Программного Обеспечения), который показывает содержимое папок для сравнения, и вы можете синхронизироваться с большим количеством различных опций. Вы можете фильтровать при синхронизации и сравнении.
Для сравнения содержимого файлов просто пометьте два файла, выберите "file" > "compare content" и они будут сравниваться по буквам. инструментом по умолчанию для сравнения, используемым krusader, является инструмент KDE "Kompare" по умолчанию. Вы можете настроить krusader на использование любого другого инструмента сравнения - как, например, один из вышеперечисленных.
Это самое полное решение, которое я когда-либо находил и оно очень удобно. И оно поддерживает все функциональные кейбинданги, используемые полуночным командиром (синтаксис нортонского командира).
Попробуйте также 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. Но она хорошо работает.
На основе этой записи в блоге .
Список различных файлов:
diff -qr folder1 folder2
Список также содержание:
diff -Naur folder1 folder2
Если два каталога находятся на разных машинах, rsync
может быть самым простым решением. Обычно rsync
используется для синхронизации каталогов, но вы можете запустить его в подробном и сухом режиме, поэтому он будет отображать только файлы, которые необходимо изменить.
rsync -rvnc --delete folder1 server:/path/to/folder2
Вы можете опустить c
, если вы хотите сравнить файлы на основе временных меток и размеров файлов, чтобы ускорить все:
rsync -rvn --delete folder1 server:/path/to/folder2
Интерфейс может быть не очень сексуальным, но он очень мощный!
И если бы Вы привыкли к другим *Commander (как Нортон, или лайки), Вы не потеряетесь.
Используйте команду diff
:
diff -u file1 file2
diff -u
выбирает формат с несколькими строками контекста. В простом diff файле1 file2
перечислены только отличающиеся строки. Есть еще много опций для управления выходным форматом, игнорирования различий только с пробелами и т.д.
Если вы хотите записать вывод в файл, перенаправьте его:
diff -u file1 file2 >file1-file2.diff
Diff - ваш друг.
diff -ur path1 path2
Это позволит сравнить все файлы, которые являются общими между путями 1 и 2.
Если вы измените -ur
на -urN
, то это также покажет содержимое файлов, которые присутствуют только в одном из путей.
'Beyond Compare' доступен и для Linux. Проверьте их URL загрузки.
.
Их немецкий сайт находится по адресу http://www.beyondcompare.de/.
Unison - это быстрый инструмент синхронизации файлов, который использует алгоритм rsync и позволяет предварительно просмотреть различия перед обновлением между 2 местоположениями, будь то удаленное или локальное.
Кросс-платформенность, простота, отсутствие суеты и функции сохранения профиля делают Jfilesync моим лучшим выбором