Страница 1 из 3

Как подсчитать размер папки с учетом ссылок?

Добавлено: Вт июн 22, 2010 01:39
Psycho
Привет.

Как подсчитать размер папки с учетом ссылок (hardlinks)?

Добавлено: Вт июн 22, 2010 02:07
Flasher
Так же, как и папку с обычными файлами, разницы никакой, по пробелу либо Ctrl+L.

Добавлено: Вт июн 22, 2010 08:33
GGS
Flasher
IMHO, Вы неправильно поняли вопрос.
Я полагаю, интересует возможность подсчёта реального размера папки с учётом того, что некоторые файлы являются жёсткими ссылками в пределах этой же папки с её подпапками.

Добавлено: Вт июн 22, 2010 09:09
Вахмурка
Я не большой специалист по жестким ссылкам, но по-моему, это обычный файл, просто средствами файловой системы связанный с другим файлом. Только что проверил одну из своих директорий с жесикими ссылками - файлы как файлы, с определенным весом. Если бы не спец. средства (и если бы полный склероз - сам их создавал), я бы никогда и не узнал, что это жесткие ссылки. Так что, по-моему, Flasher прав. Если ты еще чего-то хочешь, спрашивай подробнее.

Добавлено: Вт июн 22, 2010 09:42
CaptainFlint
Узнать это можно (если у двух файлов одинаковые идентификаторы — значит, это жёсткие ссылки). Подозреваю, что Psycho хочет узнать суммарный объём реальных данных на диске (т.е. если в каталоге несколько жёстких ссылок, чтобы они учитывались только один раз).

К сожалению, сейчас это практически нереальная задача. Надо посчитать общий размер, потом сделать поиск всех жёстких ссылок, определить, кто из них кого дублирует, и из того суммарного размера вычесть размер "лишних" ссылок. Может быть, и есть сторонние программы, но для Тотала других решений придумать не могу.

Добавлено: Вт июн 22, 2010 09:43
GGS
Вахмурка
Файлы, являющиеся жёсткими ссылками, физически занимают одно и то же место на диске.

Добавлено: Вт июн 22, 2010 09:50
Вахмурка
2GGS
Я даже это знаю! :wink: Просто это ВЫГЛЯДИТ, как два разных файла. Тем более что к обсуждаемому вопросу такие тонкости отношения не имеют.

Добавлено: Вт июн 22, 2010 10:06
GGS
Вахмурка писал(а):Тем более что к обсуждаемому вопросу такие тонкости отношения не имеют.
Я исходил из:
Psycho писал(а):размер папки с учетом ссылок (hardlinks)
Эта "тонкость" является ключевой в вопросе. Иначе о чём эта тема вообще.

Добавлено: Вт июн 22, 2010 10:20
MVV
Пожалуй, единственное что могу предложить - это найти все файлы в интересующей папке, вывести на панель, добавить колонку идентификатора файла из плагина NTLinks, отсортировать список по ней, экспортировать в эксель и удалить дубликаты строк.

А вообще, если файл лежит в нескольких папках, вопрос спорный - в какой из папок он занимает это место. :)

Добавлено: Вт июн 22, 2010 10:29
GGS
MVV писал(а):в какой из папок он занимает это место
GGS писал(а):в пределах этой же папки с её подпапками
Если файлы с идентичным идентификатором находятся и в вышестоящих папках, то они не интересуют.

Добавлено: Вт июн 22, 2010 10:48
Вахмурка
Эта "тонкость" является ключевой в вопросе. Иначе о чём эта тема вообще
Эта тема о подсчете числа жестких ссылок и об оценке суммарного веса. Я имел в виду, что местоположение (и даже, если я правльно понимаю, количество, если оно не 1) других жестких ссылок на интересующий файл никак положение не меняет

Добавлено: Вт июн 22, 2010 11:50
GGS
Вахмурка писал(а):местоположение (и даже, если я правльно понимаю, количество, если оно не 1) других жестких ссылок на интересующий файл никак положение не меняет
Жёсткие ссылки (файлы) c одинаковыми идентификаторами находящиеся внутри интересующей папки с её подпапками при подсчете физически занимаемого размера должны учитываться только один раз. Вне зависимости от того имеются ли подобные файлы за пределами этой папки.

P.S. Задачка для плагинописателей.

Добавлено: Вт июн 22, 2010 12:55
Psycho
GGS писал(а): Жёсткие ссылки (файлы) c одинаковыми идентификаторами находящиеся внутри интересующей папки с её подпапками при подсчете физически занимаемого размера должны учитываться только один раз. Вне зависимости от того имеются ли подобные файлы за пределами этой папки.

P.S. Задачка для плагинописателей.
Да именно так.
Объясню что такое жесткая ссылка.
По факту один любой существующий файл - это уже одна жесткая ссылка на содержимое файла. Ссылка ссылается на содержимое файла. Если создать вторую ссылку, то будут 2 равносильные (то бишь никто из не не является главной, обе равноправные) ссылки указывающие на содержимое файла.
Я думал что есть плагин какой нить.
Что ли мне занятся этим, я как раз программист с опытом, правда никогда не писал плагинов для totalcmd, но давно хотел написать какой нибудь полезный плагин для него.
Вот думаю как это должно выглядеть и работать на уровне плагина - пользователя. По идее File System Plugin и ...
Как считаете?

Добавлено: Вт июн 22, 2010 13:04
Psycho
Для чего мне это понадобилось. Надо измерить реальный размер папки windows\WinSxS на win7. Там очень много жестких ссылок - из за чего размер возвращается больше чем на самом деле.

Добавлено: Вт июн 22, 2010 13:34
MVV
Psycho писал(а):Надо измерить реальный размер папки windows\WinSxS на win7. Там очень много жестких ссылок - из за чего размер возвращается больше чем на самом деле.
Ну используй мой вариант:
MVV писал(а):Пожалуй, единственное что могу предложить - это найти все файлы в интересующей папке, вывести на панель, добавить колонку идентификатора файла из плагина NTLinks, отсортировать список по ней, экспортировать в эксель и удалить дубликаты строк.
Ответ на твой вопрос он тебе даст.