Я ищу то, что будет сравнивать каталоги и файлы, как Beyond Compare для Windows.
В основном это для контроля версий, но мне нужно использовать его и для развертывания.
Я ищу то, что будет сравнивать каталоги и файлы, как Beyond Compare для Windows.
В основном это для контроля версий, но мне нужно использовать его и для развертывания.
Ответы:
Meld - это инструмент, который может сравнивать и объединять файлы и каталоги. Это GUI аналог стандартных инструментов diff
и patch
инструментов командной строки. (Смотрите man diff и man patch для более подробной информации)
Кроме того, многие системы контроля версий (такие как bzr
или git
) имеют возможность создавать различия между версиями.
beyond compare
ниже. превосходит
Дифф твой друг.
diff -ur path1 path2
Это позволит сравнить все файлы, которые являются общими для path1 и path2.
Если вы измените -ur
на, -urN
то это также покажет содержимое файлов, которые присутствуют только в одном из путей.
colordiff
и использованоcolordiff -ur path1 path2
«Beyond Compare» доступно и для Linux.
Проверьте их URL для загрузки: http://www.scootersoftware.com/download.php
Используйте diff
команду:
diff -u file1 file2
diff -u
выбирает формат с несколькими строками контекста. Равнина diff file1 file2
только перечисляет отличающиеся линии. Есть еще много опций для управления форматом вывода, игнорирования различий только с пробелами и т. Д.
Если вы хотите записать вывод в файл, перенаправьте его:
diff -u file1 file2 >file1-file2.diff
Интерфейс может быть не очень сексуальным, но он очень мощный!
И если вы привыкли к другому * Commander (например, Нортону или тому подобное), вы не будете потеряны.
Вдохновленный этой записью в блоге .
Список разных файлов:
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
Krusader - это бесплатный инструмент (доступен в Центре программного обеспечения), который показывает содержимое папок в сравнении, и вы можете синхронизировать с множеством различных опций. Вы можете фильтровать при синхронизации и сравнении.
Чтобы сравнить содержимое файла, вы просто помечаете два файла, выбираете «файл»> «сравнить содержимое», и они сравниваются по буквам. инструментом сравнения по умолчанию, используемым krusader, является инструмент KDE по умолчанию Kompare . Вы можете настроить krusader на использование любого другого инструмента сравнения, например, одного из приведенных выше.
Это самое полное решение, которое я когда-либо нашел, и это очень удобно. И он поддерживает все функции keybindungs, используемые Midnight Commander (синтаксис Norton Commander).
Я узнал о 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
Хороший способ сделать это сравнение - использовать « 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/
С уважением!
Попробуйте также FreeFileSync . Имеет неплохой интерфейс, приемлемую скорость сравнения, хорошую фильтрацию результатов сравнения, различные способы синхронизации. Он поставляется с инструментом мониторинга папок (RealTimeSync), который может запускать FreeFileSync (фактически любую команду или сценарий) при изменении этой конкретной папки (или папок) или файлов внутри. Действительно стоит попробовать.
Больше информации об этом здесь или здесь , где у вас есть PPA тоже
Со своей страницы ключевые особенности:
Сравните файлы (побайтно или по дате) и синхронизируйте их.
Без ограничений: можно синхронизировать произвольное количество файлов.
Поддержка Юникода.
Сетевая поддержка.
Встроенная поддержка очень длинных имен файлов (более MAX_PATH = 260 символов).
База данных синхронизации для распространения удаленных файлов и обнаружения конфликтов
Поддержка нескольких пар папок с определенной конфигурацией
Полная поддержка символических ссылок Windows / Linux и точек соединения Windows.
Легкий и легко доступный интерфейс: высоко оптимизирован для скорости и огромных массивов данных.
Алгоритмы написаны на C ++ полностью.
Все показатели прогресса оптимизированы для максимальной производительности!
Создание пакетных заданий для автоматической синхронизации с или без графического интерфейса.
Фокус на удобстве использования:
Только необходимый функционал в пользовательском интерфейсе: нет перегруженных меню или значка джунглей.
Выберите все папки с помощью перетаскивания.
Последняя использованная конфигурация и настройки экрана сохраняются автоматически.
Поддерживайте и загружайте различные конфигурации с помощью перетаскивания, кнопки загрузки или командной строки.
Дважды щелкните, чтобы запустить внешнее приложение (например, показать файл в проводнике Windows)
Скопируйте и вставьте все данные сетки в виде текста
Удалите лишние / временные файлы прямо в основной сетке.
Щелкните правой кнопкой мыши контекстное меню.
Полная информация о состоянии и отчеты об ошибках
Сортировать списки файлов по имени, размеру или дате.
Поддержка файлов размером более 4 ГБ.
Возможность перемещения файлов в корзину вместо их удаления / перезаписи.
Игнорируйте каталоги "\ RECYCLER" и "\ System Volume Information" с фильтром по умолчанию. (Только для Windows)
Локализованные версии доступны для многих языков.
Удалить до копирования. Избегайте нехватки места на диске для больших заданий синхронизации.
Функциональность фильтра для включения / исключения файлов из синхронизации (без необходимости повторного сравнения!).
Включить / исключить определенные файлы из синхронизации временно.
Автоматически обрабатывать изменения летнего времени на томах FAT / FAT32.
Доступна портативная версия (выбирается через установщик).
Родная 64-битная версия.
Проверьте наличие обновлений в FreeFileSync автоматически.
Скопируйте заблокированные файлы с помощью службы теневого копирования томов Windows. (Только для Windows)
Создавайте регулярные резервные копии с макросами% time%,% date% в именах каталогов
Копирование файлов и папок время создания / доступа / изменения при синхронизации
Усовершенствованная стратегия блокировки, позволяющая использовать несколько процессов синхронизации (например, несколько устройств записи, один и тот же сетевой ресурс)
Я бы добавил, что он может управлять удаленными файлами, перемещая их в корзину или папку, указанную пользователем. Отметим один недостаток: программная документация в основном ориентирована на Windows, а не на Linux. Но это делает свою работу хорошо.
Вы можете использовать diffuse:
sudo apt-get install diffuse
diffuse file1 file2
Вы можете попробовать смесь .
Это репозитории и предоставляет графический интерфейс для сравнения файлов или папок.
ИМХО FreeFileSync очень хорош и полезнее, чем Meld. Он быстрый и стабильный, может выполнять синхронизируемые по стоимости стоимостные синхронизации, а также может экспортировать результаты сравнения в CSV-файл.
Кроссплатформенность, простота, отсутствие суеты и функции сохранения профиля делают Jfilesync моим лучшим выбором
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