| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > *NIX системы: Общие вопросы > Проверка файла на уникальность |
| Автор: powerfox 23.10.2009, 03:17 |
| Нужно проверить, является ли данный файл уникальным для определённого дерева каталогов. Вторая задача: сравнить деревья и найти уникальные файлы в каждом из них. Есть что-нибудь стандартное или нужны свои скрипты (в общем-то скрипты довольно простые)? |
| Автор: Imple 23.10.2009, 21:45 |
| В каком плане уникальным? По содержимому, имени, или еще чему? Уточни плиз ;-) |
| Автор: Imple 23.10.2009, 22:47 |
| Ммм... почти на 100% уверен что решения из коробки не существует. Прелагаю посмотреть в сторону алгоритмов хеширования и привязать их ПО для постоянного мониторинга изменения файлов (тем же inotify) и ведения базы актуальных хешей, в помощью которой можно в миг выдать любые уникальные файлы. Хотя, лучше воспользоваться SHA512, погрешность меньше |
| Автор: powerfox 24.10.2009, 00:07 | ||
Да мне, в принципе, на 1 раз нужно. Это архив фоток. Я иногда скидывал на машину А, а иногда Б. Соответственно есть бекапы (просто наболванил…) с обеих машин, а оригиналы могут быть обновлены. В итоге, получилось, что есть несколько дисков с одними и теми же фотографиями, но предположительно на каждом есть что-то уникальное. Ещё недавно в основном хранилище помереименовывал папки, что усложняет ручную сортировку. Хэши, наверное, упростят процесс (удобнее сравнить списки хэшей по папкам и отметить уникальные, чем рыскать бэшем). |
| Автор: Фантом 24.10.2009, 00:15 | ||||||
Можно соорудить такой простенький скрипт (например для каталога /home/user). Сначала
Это мы получили список md5 сумм (в виде файлов /tmp/dupsearch_сумма) и соответствующих им файлов (внутри). Далее удаляем суммы, которым соответствует только один файл:
В итоге получается какое-то количество списков дубликатов, с которыми можно что-то делать дальше. |
| Автор: powerfox 24.10.2009, 01:13 |
| Фантом, консольная магия во всей красе! Пока не проверял, но главное — идея. Спасибо за красивое решение проблемы. |