Размеры папок: учитывать хардлинки
Размеры папок: учитывать хардлинки
При подсчёте размеров папок, похоже, никак не учитываются hardlink'и файлов. Когда их, линков, немного, то наплевать, а вот, например, в Висте разработчики решили ими активно попользоваться (в паках \System32, \SysWOW64 ФАР показывает по 2-3 линка для очень многих файлов). В итоге сумма объёмов всех папок и файлов и свободного места заметно превышает объём раздела, на котором установлена Vista (у меня разница больше 10 Гб).
Есть ли какая-то возможность положение исправить?
P.S. Системный Explorer, кстати, ведёт себя столь же глупо
Есть ли какая-то возможность положение исправить?
P.S. Системный Explorer, кстати, ведёт себя столь же глупо
А как ты себе это представляешь?
Насколько я понимаю, hardlink - это когда на одни и те же данные файла ссылаются записи из нескольких директорий. Причём они равноправные, т.е. нет какой-то одной директории где файл "по настоящему" живёт.
Ну и в данных нет обратных ссылок, только счётчик.
Так что, чтобы по честному подсчитать объем файлов на разделе, с учётом hardlink-ов, нужно для каждого файла узнать не является ли он линком другого.
А это довольно дорого получается...
Насколько я понимаю, hardlink - это когда на одни и те же данные файла ссылаются записи из нескольких директорий. Причём они равноправные, т.е. нет какой-то одной директории где файл "по настоящему" живёт.
Ну и в данных нет обратных ссылок, только счётчик.
Так что, чтобы по честному подсчитать объем файлов на разделе, с учётом hardlink-ов, нужно для каждого файла узнать не является ли он линком другого.
А это довольно дорого получается...
- zg
- zero-gravity
- Posts: 6035
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
а если есть файл => два хардлинка. один внутри искомой папки, другой — нет. фигню ж получим.DkmS wrote:Представляю, что при подсчёте размера папок размер каждого файла поделится на количество ссылок (похоже, это количество довольно легко может быть получено). Можно, конечно, параметр какой-то придумать, т.к. для разных целей можно считать по-разному...
а вообще: тему — закрыть, автора — забанить.
Да легко. Я написал как - полным сканом всего раздела.DkmS wrote:Представляю, что при подсчёте размера папок размер каждого файла поделится на количество ссылок (похоже, это количество довольно легко может быть получено).Tonal wrote:А как ты себе это представляешь?
Если я не прав, и есть гораздо более быстрый способ, попробуй сам его реализовать, а потом можно будет и пач оформить - Фар то нонича открытый.
Будет обкатанный код, на любом языке, с переводом на С++ и пачем могу помочь.
Ну и что с того, что ты знаешь количество?DkmS wrote:Добавь к панели колонку "LN" и полюбуйся.
Какой смысл этого знания?
Как ты его будешь использовать?
Линки, при копировании между разделами, например, не учитываються.
Т.е. ориентируясь на размер не учитывающий линков, ты можешь прикинуть, "влезет или нет", а если будет по твоему, то это станет невозможно.