LINUX.ORG.RU

Пробегаешь все файлы в директории, пишешь куда-нибудь имя файла и его хэш (md5sum подойдёт), потом из результата выдираешь файлы с одинаковыми хэшами.

Zmacs
()
Ответ на: комментарий от Zmacs

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

Teak ★★★★★
()
Ответ на: комментарий от Teak

А вдруг найдется 1000 файлов одного размера.
Сколько по-парных (как пишется это слово?) сравнений надо будет сделать?

sdio ★★★★★
()
Ответ на: комментарий от sdio

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

А то можно ещё порассуждать, что для одинаковых файлов мы начнём хэши считать, причём не md5, а что-нибудь попроще, и не от всего файла, а от первого килобайта (у меня в роли контрольной суммы собственнно и выступала длина файла, при моих допущениях число совпадений по этой контрольной сумме невилико, а проверять при совпадении контрольной суммы надо всё равно), и так далее...

Короче говоря тут спор по сути только о том, какую конкретно выбрать контрольную сумму для первого прохода. :) Длина файла считается гораздо быстрее, чем md5, вот. :)

Teak ★★★★★
()
Ответ на: комментарий от Teak

Я не про длину (это и так, понятно, в первую очередь проверяется), а про сравнение посредством cmp.

sdio ★★★★★
()

Заюзал fdupes, всем спасибо :). Жаль не было опции "стереть все" (хлам попадался)

vdm ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.