fclones — находим дубликаты файлов с умом
Репозиторий давно не обновлялся
Последнее обновление было 1 год назад.
Знакомая ситуация: свободное место на диске тает на глазах, но удалять файлы страшно — вдруг сотрётся что-то нужное? Особенно это актуально для разработчиков, у которых накапливаются десятки версий одних и тех же библиотек, бэкапов и временных файлов. Именно здесь на помощь приходит fclones — инструмент для поиска дубликатов, который работает быстрее аналогов благодаря продуманной архитектуре на Rust.
Что может fclones?
Это не просто очередной find с сравнением хешей. fclones умеет:
- Находить дубликаты по содержимому, даже если имена файлов разные
- Работать с огромными директориями (миллионы файлов)
- Минимизировать чтение диска за счёт умного кеширования
- Гибко фильтровать результаты (по размеру, дате, маске)
- Формировать отчёты в удобных форматах (JSON, CSV)
Ключевые особенности
- Быстрее аналогов — сравнивает файлы по хешам частей, а не целиком
- Параллельная обработка — задействует все ядра процессора
- Минимум дискового I/O — умное кэширование метаданных
- Гибкие критерии — можно искать «почти одинаковые» файлы
- Кросс-платформенность — работает на Linux, macOS, Windows
Как это работает технически?
Проект написан на Rust, что обеспечивает:
- Безопасность работы с памятью
- Нативную мультипоточность
- Минимальные накладные расходы
Алгоритм:
- Сканирует файловую систему (с кешированием stat)
- Группирует файлы по размеру — разные размеры ≠ дубликаты
- Для файлов одинакового размера считает хеши блоков
- Применяет фильтры по маскам и другим критериям
- Формирует отчёт с группами дубликатов
Практическое применение
Где пригодится fclones:
- Очистка системы после установки/удаления ПО
- Оптимизация бэкапов — удаление повторяющихся версий
- Анализ датасетов в data science
- Поиск утечек конфиденциальных данных
Пример команды для поиска дубликатов изображений:
fclones group /path/to/images --name "*.{jpg,png}" --parallel
Кому стоит попробовать?
fclones особенно будет полезен:
- Системным администраторам
- Разработчикам с большими рабочими проектами
- Специалистам по обработке данных
- Всем, кто хочет навести порядок в файлах
Проект активно развивается, имеет открытый исходный код (MIT) и уже собрал почти 2.5k звёзд на GitHub. Если вы ещё не пробовали — самое время установить и освободить гигабайты дискового пространства!
Ссылка на проект: github.com/pkolaczk/fclones
