Пользовательский инструмент слияния каталогов / папок

Я думаю о разработке обычного инструмента слияния каталогов / папок как части обучения функциональному программированию, а также для устранения очень личного зуда.

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

У меня сложная глубоко вложенная структура каталогов, и мне нужен автоматизированный инструмент, который автоматически проходит по дереву папок и выполняет слияние. Другая проблема заключается в том, что я использую сочетание Linux и Windows, и во многих моих файлах есть пробелы в имени...

Первоначально я думал, что мне нужно генерировать хэши для каждого файла и сравнивать их с использованием хешей, а не имен файлов (пробелы в имени папки, а также содержимое файлов могут различаться в зависимости от источника и цели). Является ли RIPEMD-160 хорошим балансом между производительностью и предотвращением столкновений? или достаточно SHA-1? SHA-256/512 перебор?

Какая функциональная среда программирования поставляется с набором готовых библиотек для генерации этих хешей? Я склоняюсь к OCaml...

1 ответ

Проверьте синхронизатор файлов Unison.

Я сам им не пользуюсь, но слышал немало положительных отзывов. Это зрелое программное обеспечение, основанное на некоторой теоретической основе.

Также это написано на OCaml.

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