Полуавтоматическая дедуплиуация файлов [linux]
[N] app-misc/fdupes (1.50_pre2): Identify/delete duplicate files residing within specified directories
А для винды есть такое?
я просто новый диск ставлю и всё
cygwin же
По-моему это делается в консоли командами find, md5, и sort.
Я думал на счёт find, sort, md5sum и пришёл к выводу что не очень удобно. Буквально на днях занимался подобным.на сервере с простой иерархической структурой и более-менее понятным расположением дупликатов. Говно.
ГовноТак любой сказать может. Ты конкретику давай.
a/{b,c} d/{e,f}
в a/b и d/e лежат дупликаты из которых надо оставить те что в а/b
в a/c и d/f лежат дупликаты из которых надо оставить те что в d/f
в этом простом случае можно дважды выполнит что-то духе find md5sum sort uniq rm для каждой из директорий. а если таких директорий не 2, а больше? У меня в хоме полтора миллиона файлов из которых 600 тысяч - дупликаты. Ручками чистить ваще не вариант. сел писать софтинку на питоне, которая просканирует весь хом а потом будет выводить дупликаты по каталогам и предлагать выбрать кого оставить.
Отформатируй диск - начни жизнь с чистого листа!
Ясно. Вторую часть твоего первого поста я упустил из виду, думал, тебе просто найти надо.
у тебя задача, получается, не про дедупликацию, а про группировку (т.к. 600к файлов поодиночке разбирать неудобно). Думаю, можно сделать какой-нибудь выбор приоритетов, типа, выбрать базовый каталог, и сливать все в него, учитывать не только хеши, но и вложенность каталогов, пытаться найти наиболее похожий.
Есть куча материалов с конференции, тоже много всяких директорий/файлов,
в виде двух копий от разных дат.
Некоторые файлы там различаются по размеру, не отличаясь по названию.
Как удобнее всего получить список отличающихся файлов? (желательно в винде, но вариант для *nix тоже порадует).
сложность квадратичная, но это не важно
#!/bin/bash
find . | while read x; do
if [ -f "$x" ]; then
find "$1" -name "$(basename "$x")" | while read y; do
if [[ "$(md5sum "$y")" == "$(md5sum "$x")" ]]; then
echo \# $x ok
else
echo diff "$y" "$x"
fi
done
fi
done
Кажись, есть алгоритм со сложностью NlogN — вначале генерируешь список (md5sum, path), потом сортируешь его быстрой сортировкой по хэшу. А уж поиск повторений в отсортированной последовательности вроде как вообще линеен.
В общем да, нужно тогда ещё пометить принадлежность к каталогу, иначе он обнаружит внутренние несхождения, а нужны, как я понял, только внешние
Оставить комментарий
YUAL
на ноуте накопилось куча вского говна. всякие необработанные фоточки, срочно слитые флэшки, стопицот папок темп, слитые хомы с двух рабочик компов прошлой работы и т.п.На глаз я вижу что там многие файлы там явно дупликаты. В том числе куча фоточек. Сумарно всё это весит достаточно много. Есть какой-нить софт который найдёт все дупликаты, а потом предложит поудалять лишнее и предоставит выбор что конкретно удалять.
Я чё-то не могу нагуглить. Гуглю по "ручная дедупликация файлов linux".