чем нынче модно искать дубликаты файлов?

sasha397

в инете полно прог, я знаю, но как только на чем-либо останавливаешься, находятся отзывы о нестабильной/медленной/etc. работе.
поделитесь, чем пользуетесь вы?

durka82

В ТС в поиске есть такая фича.
Наверняка медленно, но когда искал - находил только need4space, а он давно не развивается и то ли на больших дисках, то ли на больших кол-вах файлов падает :(

viktor954

пробовал DupKiller, Duplicate File Finder и ещё что-то со словом "DUP". На больших объёмах (6 Тб) дохли все. В результате пришёл к "ручному" способу: поиском ищутся файлы *.* (ну или по иной нужно маске после чего результаты поиска сортируются по размеру. Файлы с одинаковым размером отсматриваются руками.

Serab

это действительно логичный алгоритм, странно, что руками получается, а программы не справляются. Они как тогда написаны?

viktor954

программы такого рода пытаются оптимизировать ручной этап - они считают контрольные суммы файлов, либо делают byte-to-byte сравнение файлов. На этом и крэшатся. Если эту автоматику отключить - работают нормально, но тогда какой в них смысл?

Serab

Ну я все равно не понимаю, как это может быть медленнее.

sasha397

не возьму в толк, в чем принципиальная разница объема? я помню раньше была удобная бесплатная программа, она отлично справлялась, ее фишка была в том, что она создавала БД с параметрами файлов, а потом на основе ее делала сравнение. в общем, примерно то же, что и ты, только более "правильно" =) жаль, потерялась...
btw, усложним условие - нужна как раз прога для поиска дубликатов медиафайлов - похожих картинок разного разрешения, похожих аудио по тегам и анализу содержимого (если такое возможно)

Andbar

поиска дубликатов медиафайлов - похожих картинок
для этого раньше использовал прогу ImgCmp, c указанной функцией вполне справляется, хоть и работает не спеша... правда, в инете сходу не находится, но могу поискать на бекапе старого харда.

sasha397

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

Serab

Купи большой винт.

yroslavasako

программы такого рода пытаются оптимизировать ручной этап - они считают контрольные суммы файлов, либо делают byte-to-byte сравнение файлов.
Один из плагинов фара имеет возможность выбора параметров для сравнения. Там можно оставить только размер. А можно и ещё первые n байт

BondarAndrey

fdupes

apl13

find / -type f -exec ls -s1 --block-size=1 '{}' ';' | awk '
{
ind = $1
sub("^[[:digit:]]*[[:space:]]*","")
if(ind in nGroups) {
nGroups[ind]++
} else {
nGroups[ind] = 0
}
for(j = 0; j < nGroups[ind]; j++) {
result = system("diff -q \"" groups[ind, j, 0] "\" \"" $0 "\" >/dev/null")
if(!result) {
groups[ind, j, groupSize[ind, j]++] = $0
break
}
}
if(j == nGroups[ind]) {
nGroups[ind]++
groupSize[ind, j] = 1
groups[ind, j, 0] = $0
}
}
END {
for(ind in nGroups) {
for(j = 0; j < nGroups[ind]; j++) {
if(groupSize[ind, j] > 1) {
for(k = 0; k < groupSize[ind, j]; k++) {
printfk ? " " : "") "\"%s\"", groups[ind, j, k])
}
printf("\n=========================================================\n")
}
}
}
}'

ХЗ, правда, глючит чего-то, надо еще подебажить.

Devid

находятся отзывы о нестабильной/медленной/etc. работе.
Тебя пугает, что программа будет работать 20 секунд вместо 10?

elena-kotenok75

если остановиться на первой задаче - просто дубликаты, то пользую древнюю программку SpaceMan99. к сожалению, платная (19$ покупать не готов, а поиск ключей нетривиален.
если правильно помню - она полнофункциональна первый месяц юзания.
периодически сравниваю с современными аналогами (и TC-поиск тоже сюда) - лучше пока не видел.
зы. вообще, щас посмотрел - заявлена поддержка семерки, так что, видимо, допиливают периодически, не забросили..

Ivan8209

Кх! Кх!
Да ты и вправду маньяк!
> system("diff -q \"" groups[ind, j, 0] "\" \"" $0 "\" >/dev/null")
Во-первых, для сравнения двоичных файлов куда удобнее использовать cmp(1).
Во-вторых, оно будет очень интересно отрабатывать файлы с пробелами в именах.
(По этой причине я всегда использовал md5(1 предполагая, что у меня не будет
переводов строки в именах. Соответственно, для поиска повторов использовал sort-uniq.)
---
"Верь сводке погоды, но доверяй --- интуиции.
Будь особенно бдителен, когда всё хорошо и нет поводов для тревоги."

apl13

Во-вторых, оно будет очень интересно отрабатывать файлы с пробелами в именах.
Почему?

apl13

На самом деле, будет очень интересно обрабатывать файлы с кавычками в именах, я на такое забил.

Ivan8209

Потому что FS!
---
"Расширь своё сознание!"

Ivan8209

> будет очень интересно обрабатывать файлы с кавычками в именах
В параллельном форуме народ обсуждает схожую тему.
Наивные юноши ещё не знают, что такое xargs(1).
> я на такое забил.
Есть мнение, что:
а) апострофы в именах файлов встречаются не сказать чтобы часто,
но не так уж и редко;
б) имена файлов, вытянутых из ed2k, начинаются не с пробела
недостаточно редко.
---
"Narrowness of experience leads to narrowness of imagination."

apl13

Потому что FS!
Какое отношение FS имеет к $0, не подскажешь? Кроме того что иногда "является элементом"?

apl13

а) апострофы в именах файлов встречаются не сказать чтобы часто,
но не так уж и редко;
Ладно, для дотошных: я специально не стал писать эскейпящую функцию, потому что тупо лень. Но в production-скрипте она была бы, разумеется.
б) имена файлов, вытянутых из ed2k, начинаются не с пробела
недостаточно редко.
Блин, да вот тебе патч: вместо "^[[:digit:]]*[[:space:]]*" "^[[:digit:]]*[[:space:]]". На один символ экономия!

Ivan8209

> Какое отношение FS имеет к $0, не подскажешь?
> Кроме того что иногда "является элементом"?
К тому, что ты его просто так съел своим subst
и даже сейчас ещё не заметил того, что сделал.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."

apl13

Ну то есть я не знаю, у меня gawk.
sub(r, s [, t])
Just like gsub but only the first matching substring is replaced.
gsub(r, s [, t])
For each substring matching the regular expression r in the string t, substitute the string s, and return the number of substitutions. If t is not supplied, use $0. An & in the replacement text is replaced with the text that was actually matched. Use \& to get a literal &. (This must be typed as ; see GAWK: Effective AWK Programming for a fuller discussion of the rules for &’s and backslashes in the replacement text of sub gsub and gensub.)
И в разделе Fields ничего не сказано про sub.

Ivan8209

> я специально не стал писать эскейпящую функцию, потому что тупо лень.
> Но в production-скрипте она была бы, разумеется.
Не знаю, не знаю...
Это ты сейчас так говоришь, а потом в работе встречаешь таких разноцветных жуков!..
> Блин, да вот тебе патч: вместо "^[[:digit:]]*[[:space:]]*" "^[[:digit:]]*[[:space:]]".
> На один символ экономия!
Я думаю, что если знать fts(3 то проще на сях написать немного подлиннее,
но зато сразу, а не приделывать постепенно костыли, когда обнаружишь нечто
неожиданное.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."

apl13

Не знаю, не знаю...
Это ты сейчас так говоришь, а потом в работе встречаешь таких разноцветных жуков!..
И это ужасно! :mog: :angry: :rambo:
Я думаю, что если знать fts(3 то проще на сях написать немного подлиннее, но зато сразу, а не приделывать постепенно костыли, когда обнаружишь нечто неожиданное.
Лучше на брейнфаке! :cry:

Ivan8209

> Лучше на брейнфаке!
Пиши на своём хаскелле.
Это серьёзно. Сваливать данные в общую кучу, чтобы потом
выковыривать их из текстового представления обратно,
когда можно делать дело сразу, просто глупо.
Тем более, что вопрос стоит об организации хранения каких-то
относительно важных данных, раз уж так озабочены поиском повторов,
а не просто удаляют недостаточно свежие файлы.
---
"Значение болевого импульса в нашей жизни неоценимо!"

apl13

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

Ivan8209

> Я полагал, что ты хочешь заверить тред пенартуриально,
> но это уже сейчас даже не соображу какой синдром.
Стремление ставить диагнозы по фотографии и произносить иные слова,
смысла которых не понимаешь, присуще __No__. Можешь называть
это как угодно, это не подсказка.
---
"Мы продолжаем то, что мы уже много наделали."
Оставить комментарий
Имя или ник:
Комментарий: