Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 7 (http://forum.oszone.net/forumdisplay.php?f=95)
-   -   [решено] По поводу стандартных симлинков и кастомных (http://forum.oszone.net/showthread.php?t=328791)

mega32 02-08-2017 07:28 2755627

По поводу стандартных симлинков и кастомных
 
В корне C: есть симлинк "Documents and Settings" -> "Users"
В тотале проверяю размер самой ссылки "Documents and Settings" - не пишет размер, оставляет надпись ссылка. Все ок.
В виртуалке удаляю эту ссылку, создаю её снова
Код:

c:\>mklink /d "documents and settings" "users"
символическая ссылка создана для documents and settings <<===>> users

Тотал начинает писать размер ссылки, т.е. реальной папки c:\Users и при определении общего занятого места получается он их складывает, папка users считается дважды.
Дальше ситуация в хостовой винде.
Та же проблема с симлинками внутри папки "Users" - "All users" & "Все пользователи" и папки C:\ProgramData". Тотал считает из-за двух кастомных симлинков размер папки ProgramData три раза.
Так уж вышло, что при попытке перенести профили пользователей на другой диск симлинки все кастомные от чего тотал коммандер насчитывает размер занятого места больше, чем вмещает сам твердотельник. При создании ссылки изменение ключа /d на /j ничего не меняет.
Это проблема тотала или можно с этими симлинками что-то сделать, чтобы они как и раньше писали нулевой размер?

Возможно дело с правами безопасности, но я не нашел различий в этих настройках в чистой винде в виртуалке и в хостовой.

UPD.
Нет все-же дело с правами безопасности конкретно для симлинка (с выбранным пунктом только для этой папки). Поставил такие-же права конкретно для симлинка, как у дефолтных симлинков и проблема решилась.

Iska 02-08-2017 08:19 2755637

Цитата:

Цитата mega32
В корне C: есть симлинк "Documents and Settings" -> "Users" »

Нет там такого симлинка. Есть связь каталогов (Junction).

Цитата:

Цитата mega32
В тотале проверяю размер самой ссылки "Documents and Settings" - не пишет размер, оставляет надпись ссылка. Все ок. »

mega32, не окей. Вопрос к Total'у.

Цитата:

Цитата mega32
В виртуалке удаляю эту ссылку, создаю её снова
Код:

mklink /d "documents and settings" "users"
»

Вы не «создаёте её снова». Совсем. В оригинале а) не символическая ссылка, а связь каталогов, б) абсолютный путь, а не относительный и в) другое имя — не «documents and settings», а «Documents and Settings».

Цитата:

Цитата mega32
Та же проблема с симлинками внутри папки "Users" - "All users" & "Все пользователи" и папки C:\ProgramData". Тотал считает из-за двух кастомных симлинков размер папки ProgramData три раза. »

Вы уверены ;)? Там внутри ещё есть связь каталогов на ту же C:\ProgramData. Ах, да, у Вас же TC не считает связь за каталог.

Цитата:

Цитата mega32
Так уж вышло, что при попытке перенести профили пользователей на другой диск симлинки все кастомные от чего тотал коммандер насчитывает размер занятого места больше, чем вмещает сам твердотельник. »

И правильно делает.

Цитата:

Цитата mega32
При создании ссылки изменение ключа /d на /j ничего не меняет. »

Всё меняет. Это две разных точки повторной обработки, каждая со своей спецификой. И, насколько я вижу, Total Commander так и продолжает одинаково помечать их в списке, как <LNK> в поле Size, несмотря на то, что даже dir их различает.


Задайтесь вопросом — что должно происходить при копировании с одного физического диска на другой:
а) жёсткой ссылки (hard link);
б) связи каталогов (junction);
в) символической ссылки (symbolic link)?

Цитата:

Цитата mega32
UPD.
Нет все-же дело с правами безопасности конкретно для симлинка (с выбранным пунктом только для этой папки). Поставил такие-же права конкретно для симлинка, как у дефолтных симлинков и проблема решилась. »

Отчего-то у Far Manager'а не возникает подобных проблем, и не требуется трогать какие-либо права и наследование.

mega32 02-08-2017 16:30 2755775

Цитата:

Цитата Iska
mega32, не окей. Вопрос к Total'у. »

Тотал и экплорер не пишет размер ярлыка или симлинка или связи каталогов, что почти одно и то-же. Просто по логике вещей не должно и не пишет. Иначе любые проги, как и говорилось в посте будут писать занимаемое место больше, чем вмещает сам диск. А вещь этого нет в стандартной вкладке диск или оснастке diskmgmt.msc
Цитата:

Цитата Iska
а) не символическая ссылка, а связь каталогов »

Вообще без разницы. По факту работают одинаково.
Цитата:

Цитата Iska
б) абсолютный путь, а не относительный »

Не важно, я нахожусь в C:\, папка и ссылка находятся в C:\, поэтому могу писать не абсолютный путь, а относительный и это представьте работает так-же, как и абсолютные пути.
Цитата:

Цитата Iska
в) другое имя — не «documents and settings», а «Documents and Settings». »

Заглавные или строчные - винде пофиг, имя по факту одинаковое.
Цитата:

Цитата Iska
И правильно делает. »

Что правильного в баге, когда занимаемый размер в 3 раза больше, чем это на самом деле? Простая логика:
-есть каталог на десяток гигабайт на диске D:
-есть ссылка на этот каталог на диске C:
Файлы занимают место на диске D:, а не C:., соответственно и ссылка не должна занимать эти гигабайты.
Цитата:

Цитата Iska
Всё меняет. Это две разных точки повторной обработки, каждая со своей спецификой. И, насколько я вижу, Total Commander так и продолжает одинаково помечать их в списке, как <LNK> в поле Size, несмотря на то, что даже dir их различает. »

Механизм работы здесь не важен - в итоге результат одинаковый

Iska 02-08-2017 17:09 2755794

Цитата:

Цитата mega32
Просто по логике вещей не должно и не пишет. »

Моё мнение — должно. По той же логике.

Цитата:

Цитата mega32
Иначе любые проги, как и говорилось в посте будут писать занимаемое место больше, чем вмещает сам диск. »

Жёсткие ссылки, связи каталогов, символические ссылки, сжатые файлы, разреженные файлы, дедуплицированные файлы и т.д. Там много чего есть, что влияет.

Суммарный размер файлов — это одно. Занимаемое ими место на диске — другое. Сколько места будет занято после копирования (особенно на другой раздел или диск) — третье. И все эти размеры разные.

Не используйте «любые проги» для оценки. Используйте специально предназначенные для того инструменты.

Цитата:

Цитата mega32
А вещь этого нет в стандартной вкладке диск или оснастке diskmgmt.msc »

Зато там есть другое и более нужное — размер свободного места.

Цитата:

Цитата mega32
Вообще без разницы. По факту работают одинаково. »

Разница очень существенная. Работают по разному.

Цитата:

Цитата mega32
Не важно, я нахожусь в C:\, папка и ссылка находятся в C:\, поэтому могу писать не абсолютный путь, а относительный и это представьте работает так-же, как и абсолютные пути. »

Представьте, что это совершенно не так. Связь каталогов не может указывать на относительный путь. Вы невнимательно прочитали то, что я написал: то, что Вы создавали, не являлось свзяью каталогов (как было в оригинале), Вы создавали символическую ссылку (чего в оригинале не было).

Цитата:

Цитата mega32
Заглавные или строчные - винде пофиг, имя по факту одинаковое. »

Эти имена будут разными. Особенно это заметно при использовании символов за пределами ASCII-таблицы. Операционная система действительно позволяет работать с объектами файловой системы, не учитывая регистр символов.

Цитата:

Цитата mega32
Что правильного в баге, когда занимаемый размер в 3 раза больше, чем это на самом деле? »

Это Вы решили, то это именно занимаемый размер. Но это не так.

Цитата:

Цитата mega32
Простая логика… »

Повторю:
Цитата:

Цитата Iska
Задайтесь вопросом — что должно происходить при копировании с одного физического диска на другой:
а) жёсткой ссылки (hard link);
б) связи каталогов (junction);
в) символической ссылки (symbolic link)? »

Задайте себе эти вопросы. Затем попробуйте ответить на них.

Цитата:

Цитата mega32
Файлы занимают место на диске D:, а не C:., соответственно и ссылка не должна занимать эти гигабайты. »

Для оценки места, занимаемого файлами, используйте специально предназначенные для того инструменты. Не используйте для этого Проводник. Он честно показывает суммарный объём файлов, доступных по рекурсивному поиску в дереве каталогов — то место, сколько займут все эти файлы после копирования.

Цитата:

Цитата mega32
Механизм работы здесь не важен - в итоге результат одинаковый »

Результат может быть одинаковым, но механизм работы существенно разнится.

Вам крайне желательно ознакомиться хотя бы с базовыми основами жёстких ссылок, связей каталогов и символических ссылок: что, как, почему, принципы работы, в чём разница и т.д.


Дабы не продолжать толочь воду в ступе — что именно Вы хотите узнать:
  1. Суммарный размер файлов?
  2. Занимаемое файлами место на диске?
  3. Сколько места будет занято после копирования?

mwz 02-08-2017 17:41 2755804

Цитата:

Цитата Iska
Нет там такого симлинка. Есть связь каталогов (Junction). »

Угу.



Однако когда создаю дубликат с именем Roaming, что симлинком, что по связи Junction — TotalCmd начинает подсчитывать место.

mega32

Связи проявлены и дубликаты создавались утилитой Link Shell Extention.

После чего начинаем разбираться — и видим, что на исходную связь и на дубликат-самострок права пользователей одинаковы, кроме: у "правильной" папки есть ещё один пользователь: "Все", с особыми правами. Ну дальше уже копать не стал: уверен что именно в тех правах и лежит разница, поскольку чудес не бывает.


PS

mega32
Но вопрос хороший, поскольку не обращал внимания, а может пригодиться — и проверил: конкретно для пользователя "Все" установлен единственный элемент запрета, "Содержание папки / Чтение данных", причём только на эту папку, без вложенных объектов. И после установки такого запрета на связь-самострок всё приходит в норму.

И только после этого заметил, что вы решили вопрос тем же путём.

PPS

Ну а разницу между симлинками и точкой соединения Junction вы почувствуете при сетевом доступе к таким псевдопапкам. Я с этим уже столкнулся — и пришлось переделывать свои папки-симлинки, к которым мне нужен был сетевой доступ, на точки связи.

mega32 02-08-2017 18:56 2755821

Цитата:

Цитата Iska
Дабы не продолжать толочь воду в ступе — что именно Вы хотите узнать: »

Тема отмечена решенной, еще тогда, когда вы и прочитать её не успели. Когда здесь не было не одного поста, кроме моего. Соответственно льёте воду тут только вы, докапываясь до незначительных вещей. Я узнал всё, что хотел. Баг с обсчитыванием размера ссылок лечится, как и написал mvz установкой запрета только для ссылки на чтение папки для группы "Все". Тема исчерпана и в вашем флуде не нуждается.

Iska 03-08-2017 04:00 2755898

mega32, флаг в руки.

Цитата:

Цитата mega32
Тема отмечена решенной, еще тогда, когда вы и прочитать её не успели. »

Вы не правы.

Цитата:

Цитата mega32
Соответственно льёте воду тут только вы, докапываясь до незначительных вещей. »

Когда дозреете до понимания сути этих «незначительных вещей» — приходите и задирайте нос сколь Вам будет угодно.

Цитата:

Цитата mega32
Тема исчерпана и в вашем флуде не нуждается. »

Жалуйтесь в администрацию.


Время: 00:13.

Время: 00:13.
© OSzone.net 2001-