>>Во первых - Я максимум буду иметь 1-100млн файлов для которых хеш
>>должен различатся.
>
>С вашей схемой можно элементарно создать два файла, для которых хеш будет
>одинаковый, миллионов файлов для этого не нужно. Отвечаю ниже
>>Да - локальное применение
>>Не понял из манов по UUID -может ли она на основании фала
>>выдавать данные...
>
>Да, генерируется просто случайная, уникальная последовательность. А зачем вам на основе
>данных файла? У вас ведь задача не создать хеш, отражающий
>содержимое *всего* файла (иначе бы вы не задали вопрос), а просто
>создать некоторую уникальную последовательность символов, которую вы будете ассоциировать со своим
>файлом. Именно для этого и придуман UUID. Приведите, пожалуйста,
>конкретные примеры применения того хеша, который вы хотите сделать.
Мне нужен хеш, который Я буду получать на основании файла и что бы он был всегда одинаковый даже если переименовать файл!!!
Я уже писал, что Мне бы подошло использование - md5sum, но хеш строится как Я понимаю _для_всего_файла_ а значит что это очень долго. Я писал что замерял для 4Гб файла это порядка 2минут, Я же хочу не больше 5-ти секунд.
Во первых контент у Меня - музыка, фильмы, архивы, образы.
Как определить что файл уникален?
Во первых размер - даже если возьмем фильм, отрежим от него кусок то размер будет различен.
Во вторых какая вероятность что взятые 25 частей файла по n байт будут похожи и при этом размер у них будет одинаковый?
Для ускорения обсчета этого хеша Я хочу написать утилку наподобии cat, которая будет читать несколько частей файла и выводить их непрерывным потоком а в конце или в начале в вывод добавлять размер файла.
>>>Если вы таки хотите хеш по всему файлу, то учитывайте, что время его подсчёта будет как минимум равно времени чтения файла. Поэтому замерьте cat file > /dev/null для начала. Это и будет минимально достижимое время *в принципе*.
>>
>>нет. Про cat - понял, тут наверное и запираются md5sum &etc
>
>А давайте не гадать на кофейной гуще, а оперировать цифрами:
>
>/usr/bin/time -v cat file > /dev/null
>/usr/bin/time -v md5sum file
В том то и дело что не хочу по всему файлу