Задать вопрос
@Drovosek01

Как найти различающиеся по хэшу файлы в двух директориях с вложенными директориями?

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

Нужно сравнить (по хэшу или как-то по-другому) все файлы в 2 папках и вложенных папках и узнать какие из файлов отличаются (и желательно какие из файлов не повторяются).

Есть ли ПО, которое может это сделать или bash скрипт или что-то подобное?
  • Вопрос задан
  • 1064 просмотра
Подписаться 1 Простой 6 комментариев
Решения вопроса 1
erge
@erge
Примус починяю
под Windows : Total Commander, Unreal Commander, Double Commander
под Linux: Double Commander
функция - Команды - Синхронизировать каталоги (как-то так)
mc и far вроде так же умеют сравнивать каталоги.

скрипт лучше всего наверно написать на python (есть на любой ОС, хотя на любителя), взять за пример выше на VBS (честно не вчитывался) либо по своему написать, имхо - заносить хеши файлов в массив, затем сравнивать (ну как-то так)
на bash предполагаю будет жутким извращением, хотя думаю что возможно.
PS: в bash все равно не обойтись чистым bash, потребуется как минимум одна внешняя команда md5sum , которой в Windows скорее всего не будет и надо будет искать ее порт под Windows или аналог. Так же есть diff , который можно было бы использовать, но это опять же не встроенная в bash команда.

так же
GTBACKUP

по rSync:
поиск вообще пробовали? rsync windows
cwRsync
https://habr.com/ru/sandbox/48269/

https://rsync.samba.org/

либо даже Cygwin со всеми соответствующими плюшками.
хотя, в Windows 10 есть целая подсистема Linux - WSL
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
sotvm
@sotvm
Умный поймёт, а дураку и так всё равно.
ну для начала отфильтруй хотя бы по размеру,
потом уже, из меньшей кучи, сравнивай.
md5 быстро работает(man md5sum), если у тебя файлов не 100500 мильёнов )))
Ответ написан
FAN2tom
@FAN2tom
Я пришёл с миром!
Total Commander умеет сравнивать каталоги. Так же там есть функционал "отобразить все файлы без каталогов". Как вариант, алгоритм следующий:
1. Выбираешь нужную папку с подпапками на одной панели и применяешь команду "отобразить все файлы без каталогов".
2. На второй панели проделываешь со второй папкой тоже.
3. Выбираешь команду "сравнивать каталоги".
Сравнение примитивное (не по хешам) и могут быть разные нюансы, так что это подходит для грубого сравнения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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