На томе Win7 NTFS я использую cwrsync, который правильно поддерживает --link-dest для создания резервных копий типа «снимок». Так что я:
z:\backups\2010-11-28\cygdrive\c\Users\...
z:\backups\2010-12-02\cygdrive\c\Users\...
Содержимое 2010-12-02 в основном содержит жесткие ссылки на файлы в каталоге 2010-11-28, но есть несколько новых или измененных файлов только в 2010-12-02. В linux утилита du сообщит мне фактический размер каждого добавочного снимка. В Windows Explorer и du under cygwin одурачены жесткими ссылками и показывают, что 2010-12-02 занимает немного больше места, чем 2010-11-28.
Существует ли утилита Windows, которая покажет правильное пространство, используемое в действительности?
Ответы:
Попробуйте использовать Sysinternals Disk Usage (иначе известный как
du
), в частности , с помощью-u
и-v
флаги будут рассчитывать только уникальные экземпляры, и покажут использование каждой папки , как она идет вместе.Насколько я знаю, файловая система не показывает разницы между исходным файлом и жесткой ссылкой (это действительно точка жесткой ссылки), поэтому вы не можете сбрасывать со счетов их на основе папок, но нужно сделать это сравнительно.
Для тестирования я создал случайную папку с 6 файлами в. Клонировал все это. Затем в первой папке было создано несколько жестких и мягких ссылок для ссылки на другие файлы в первой папке, а также некоторые во второй.
du -u -v testFld
Результаты запуска (обратите внимание, что значения рядом с папками указаны в КиБ):Запуск
du -u -v testFld\a
результатов в:Запуск
du -u -v testFld\b
результатов в:Заметить несоответствие?
Символьные ссылки в A, которые ссылаются на файлы в B, учитываются только против A во время «полного» прогона, а B возвращает только 54 (даже если файлы изначально были в B и жестко связаны с A). Когда вы измеряете B отдельно (или, если вы не используете
-u
уникальный флаг), он будет считать его «полную» меру 74.источник
-u
флага. Вы получаете «полную» меру , если вы используете на-u
флаг. Без него он учитывает только 1 экземпляр любого файла с жесткой связью. Об этом говорится в документации: docs.microsoft.com/en-gb/sysinternals/downloads/du, и тестирование подтверждает это.PowerShell 5 может быть вариантом. Он доступен для Windows 7, но я проверял это только на Server 2012 R2 с апрельским обзором 2015 года.
Поставщик файловой системы в PowerShell 5 имеет два новых свойства
LinkType
иTarget
:это возвращает:
Так что теперь я могу показать только все файлы в system32, которые не являются жесткими ссылками:
это возвращает:
Вы можете сравнить это со всеми файлами:
Таким образом, более 13 000 файлов с 2 ГБ + являются жесткими ссылками
источник
TreeSize Professional (~ $ 55, 30-дневная пробная версия) утверждает, что искажает место на жестком диске NTFS. Быстрое испытание, кажется, подтверждает это.
Поддержка жестких ссылок не включена "из коробки": выберите Инструменты> Параметры> Сканировать , повторно отсканировать, затем использовать
Ctrl-1
иCtrl-2
для переключения между Размером и Выделенным пространством. Выделенное - это фактическое используемое пространство, а Size - это статистика, обычно сообщаемая другими программами.Существует снижение производительности за включение поддержки жестких ссылок (и символических ссылок и монтирования тоже, если вы этого хотите). Цветовая палитра бросается в глаза на мой вкус, но это, кажется, является нормой для курса в этом жанре. Также будьте осторожны при щелчке в области диаграммы блока - легко случайно переместить папку с ошибочным перетаскиванием, когда вы только хотели ее развернуть.
источник
Я думаю, что некоторые факты должны быть установлены прямо здесь.
Windows не может «обнаружить» жесткие ссылки, поскольку каждый файл на самом деле является жесткой ссылкой на группу байтов на диске.
Инструмент du обнаруживает дубликаты, но это также ложно, так как если папка A содержит файлы, а B содержит только жесткие ссылки на файлы в A, то du из A и du из B будут возвращать один и тот же ответ - размер файлов, поступающих изначально от А, но эти файлы теперь тоже в Б.
Это действительно правильно, так как, например, если вы удалили A, то его файлы не будут удалены на диске, потому что на них по-прежнему ссылается B. С жесткими ссылками, какой файл является источником, а какой - жесткой ссылкой совершенно произвольно и бессмысленно.
Такие продукты, как du, будут отображать каталог при дисконтировании дубликатов. Это будет работать, только если все файлы и жесткие ссылки содержатся в одном каталоге. Многие продукты со списком папок делают это.
Вывод: с жесткими ссылками вопрос о «фактическом размере, используемом в каталоге NTFS» не имеет смысла.
источник
Я также делаю некоторые исследования по этому вопросу. Вот результаты, которые я обнаружил.
Размер папки, содержащей жестко связанные файлы в NTFS, можно рассматривать в трех разных значениях:
Число 2 - это то, что показывает TreeSize Professional на вкладке «Сведения» в столбце «Выделено», если включена опция «Отслеживать жесткие ссылки NTFS».
Вот пример для папки winsxs (7.5Gb вместо 10):
Получение значения № 3 - все еще вопрос для меня. Хотя я смог получить нижнюю границу, используя Total Commander с плагином NL_Info. У меня есть размер, занимаемый файлами, которые имеют только одну жесткую ссылку (уникальные файлы). Это было около 5 Гб для данного примера.
Таким образом, пытаясь расширить harrymc ответить или сказать другими словами.
источник
Вы можете использовать ln.exe, чтобы показать «истинный размер» дерева каталогов:
Он будет обнаруживать только жесткие ссылки под этой начальной папкой.
источник