Я шукаю те, що буде порівнювати каталоги та файли, як Beyond Compare робить для Windows.
Це головним чином для використання джерела управління, але мені потрібно використовувати його і для розгортання.
Я шукаю те, що буде порівнювати каталоги та файли, як Beyond Compare робить для Windows.
Це головним чином для використання джерела управління, але мені потрібно використовувати його і для розгортання.
Відповіді:
Meld - це інструмент, який може порівнювати та об’єднувати файли та каталоги. Це аналоговий інтерфейс для стандартних diff
і patch
командних лінійних інструментів. (Докладніші відомості див. У розділі man diff та man patch )
Крім того, багато систем управління джерелами (наприклад, bzr
або git
) мають можливість створювати різні версії.
beyond compare
нижче. перевершує
Діфф - твій друг.
diff -ur path1 path2
Це дозволить порівняти всі спільні файли між path1 та path2.
Якщо ви перейдете -ur
до -urN
цього, це також покаже вміст файлів, які присутні лише в одному з шляхів.
colordiff
та використаноcolordiff -ur path1 path2
"Більше порівняння" доступний і для 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, щоб використовувати будь-який інший інструмент порівняння - як, наприклад, один із перерахованих вище.
Це найповніше рішення, яке я коли-небудь знаходив, і це дуже зручно. І він підтримує всі функціональні клавішні, використовувані командиром опівночі (синтаксис командира Нортона).
Я дізнався про hashdeep два тижні тому. І це має деякі сильні переваги:
meld
, він добре працює для дуже великих папок. Там, де meld
стає надзвичайно повільно, а інтерфейс користувача не реагує (заблокований), хеш-глиб просто працює з постійною швидкістю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 ".
Приклад:
Використовуйте пошук, щоб перелічити всі файли в каталозі, потім обчисліть хеш 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 , занадто
На їхній сторінці основні характеристики:
Порівняйте файли (в байці або за датою) та синхронізуйте їх.
Без обмежень: Довільну кількість файлів можна синхронізувати.
Підтримка Unicode.
Підтримка мережі.
Вбудована підтримка дуже довгих імен файлів (більше MAX_PATH = 260 символів).
База даних синхронізації для розповсюдження видалених файлів та виявлення конфліктів
Підтримка декількох папок з різною конфігурацією
Повна підтримка символічних посилань Windows / Linux та сполучних точок Windows.
Легкий та легко доступний інтерфейс користувача: Високо оптимізований для швидкості та величезних наборів даних.
Алгоритми закодовані в C ++ повністю.
Всі показники прогресу оптимізовані для максимальної продуктивності!
Створюйте пакетні завдання для автоматизованої синхронізації з графічним інтерфейсом або без нього.
Зосередьтеся на зручності використання:
Тільки необхідна функціональність у користувальницькому інтерфейсі: відсутність перевантажених меню чи значків джунглів.
Виберіть усі папки за допомогою перетягування.
Останні використані налаштування та параметри екрана зберігаються автоматично.
Підтримуйте та завантажуйте різні конфігурації за допомогою перетягування, кнопки завантаження або командного рядка.
Двічі клацніть, щоб запустити зовнішню програму (наприклад, показати файл у Windows Explorer)
Скопіюйте та вставте всі дані сітки у вигляді тексту
Видаліть зайві / тимчасові файли безпосередньо з основної сітки.
Клацніть правою кнопкою миші контекстне меню.
Вичерпна інформація про стан та повідомлення про помилки
Сортування списків файлів за іменем, розміром або датою.
Підтримка розмірів файлів більше 4 Гб.
Можливість переміщення файлів у кошик замість видалення / перезапису.
Ігноруйте каталоги "\ RECYCLER" та "\ Інформація про обсяг системи" за допомогою фільтра за замовчуванням. (Лише для Windows)
Локалізовані версії доступні для багатьох мов.
Видалити перед копіюванням: Уникайте нестачі місця на диску для великих завдань синхронізації.
Функціональність фільтру, щоб включати / виключати файли з синхронізації (не вимагаючи повторного порівняння!).
Тимчасово включайте / виключайте певні файли з синхронізації.
Автоматично обробляти зміни літнього часу на обсягах FAT / FAT32.
Доступна портативна версія (вибирається через інсталятор).
Рідна 64-розрядна версія.
Автоматично перевіряйте наявність оновлень з FreeFileSync.
Копіюйте заблоковані файли за допомогою служби Windows Volume Shadow Copy. (Лише для Windows)
Створіть регулярні резервні копії з макросами% time%,% date% у іменах каталогу
Скопіюйте час створення файлів і папок / доступу / модифікацій під час синхронізації
Розширена стратегія блокування для забезпечення безлічі процесів синхронізації (наприклад, кілька записувачів, однакова мережа)
Я додаю, що він може керувати видаленими файлами, переміщуючи їх у кошик або папку, вказану користувачем. Щоб відзначити недолік: програмна документація зосереджена на Windows, менше на Linux. Але це робить свою роботу чудово.
Ви можете використовувати дифузне:
sudo apt-get install diffuse
diffuse file1 file2
Можна спробувати meld .
Це сховища та надає графічний інтерфейс для порівняння файлів чи папок.
IMHO 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