Page 1 of 2

Удаление содержимого каталогов при удалении символических ссылок

Posted: Thu 12 Apr, 2018 15:13
by AntonK
В текущей стабильной версии (3.0 build 5151 x64, Windows 7 64-bit SP1) при удалении нескольких символических ссылок (junctions) происходит удаление содержимого каталогов, на которые ссылки указывают, а должны удаляться только ссылки.
При удалении одной ссылки всё обрабатывается корректно - программа понимает, что удаляется ссылка. Однако, если выделено несколько ссылок, то в процессе удаления (по SHIFT+DEL) начинают появляться предупреждения об удалении содержимого целевых каталогов...
См. тж. похожую проблему в ночной сборке 5114 (вроде бы, исправлена была, но, видимо, частично).
В свежей ночной сборке не проверял пока, постараюсь сделать это позже...

Удаление содержимого каталогов при удалении символических ссылок

Posted: Thu 12 Apr, 2018 15:19
by HaRT
Влияет ли на это поведение значение опции Scan symbolic links в System settings?

Удаление содержимого каталогов при удалении символических ссылок

Posted: Thu 12 Apr, 2018 15:27
by AntonK
HaRT wrote:
Thu 12 Apr, 2018 15:19
Влияет ли на это поведение значение опции Scan symbolic links в System settings?
Если опция включена (видимо, по умолчанию так), то задаются вопросы (мол, каталог такой-то будет удалён), а если опция отключена, то эти вопросы не задаются и всё (включая, содержимое целевых каталогов) тихонько удаляется...

Удаление содержимого каталогов при удалении символических ссылок

Posted: Thu 12 Apr, 2018 15:42
by AntonK
Похоже, проблема исправлена: в ночной сборке 5188 x86 (с настройками по умолчанию, в той же ОС - установка по соседству) проблема не воспроизводится - удаляются только символические ссылки без удаления содержимого целевых каталогов (никаких лишних вопросов не задаётся).

Удаление содержимого каталогов при удалении символических ссылок

Posted: Thu 12 Apr, 2018 16:50
by 2useven10
AntonK wrote:
Thu 12 Apr, 2018 15:42
Похоже, проблема исправлена: в ночной сборке 5188
drkns 29.03.2018 13:05:45 +0300 - build 5175

1. С форума: падение при File panel modes -> Ins Enter.

2. Некорректно работало удаление нескольких выделенных симлинков.

3. Рефакторинг.

Удаление символических ссылок

Posted: Fri 07 Jun, 2019 10:50
by xyz
Наткнулся на неприятное поведение FARа.
Если удаляем один симлинк, то всё хорошо, он разрывается. А если выделаем и удаляем несколько, или симлинки находятся в подкаталогах, то происходит удаление содержимого внутри симлинка, а затем его удаление, вместо разрывания связей.
[ ] Сканировать символические ссылки отключено
Far Manager, version 3.0 (build 5151) x64

Почему это плохо? Пример: Копирую папку с профилями c:\users. Удаляю только что скопированное. При этом удалилось половина содержимого профиля.

Удаление символических ссылок

Posted: Fri 07 Jun, 2019 11:08
by xyz
Похоже наткнулся на старый баг viewtopic.php?f=9&t=11175

Удаление содержимого каталогов при удалении символических ссылок

Posted: Fri 07 Jun, 2019 11:49
by John Doe
Который давно исправлен.

Удаление содержимого каталогов при удалении символических ссылок

Posted: Sat 27 Jul, 2019 19:22
by Backslash
Я нашёл проблему, вроде бы связанную с обсуждаемой выше, так что добавляю сюда.

Поведение наблюдаемо, например, в 3.0.5433 x64 под Windows 7 / SP1 / x64.

Проблема: перенос символических ссылок с одного диска на другой приводит к "удалению содержимого каталогов, на которые ссылки указывают" (совершенно, как в первом сообщении выше).

Подробнее:
A) выбираем одну или несколько (в данном сценарии это, похоже, не важно) symlink, скажем C:\LinkieA (ссылка на какую-то директорию на диске, скажем, M: с разным хламом внутри)
B) совершаем F6 / Move на какой-нибудь другой диск, скажем, K:
Результаты:
1) получаем в K:\LinkieA физическую копию директории, на которую указывала ссылка (пока всё ожидаемо и в порядке)
2) ссылка , равно как и содержимое физического каталога, на коий она указывала, удаляется. Что очень напоминает проблему, исправленную в build 5175.

И между прочим, хотя это и не обязательно, на мой взгляд было бы полезно и логично, если бы команды Copy/Move особливо при выключенной опции "Copy contents of symbolic links" создавали в директории назначения "копию" ссылки с теми же параметрами, что у копируемой/переносимой. Но это уже совсем другая история.

Удаление содержимого каталогов при удалении символических ссылок

Posted: Sat 27 Jul, 2019 21:41
by DrKnS
Backslash wrote:
Sat 27 Jul, 2019 19:22
перенос символических ссылок с одного диска на другой приводит к "удалению содержимого каталогов, на которые ссылки указывают"
В каком состоянии опция "Copy contents of symbolic links"?
Backslash wrote:
Sat 27 Jul, 2019 19:22
с теми же параметрами, что у копируемой
Что имеется в виду?

Удаление содержимого каталогов при удалении символических ссылок

Posted: Sun 28 Jul, 2019 11:17
by Backslash
DrKnS wrote:
Sat 27 Jul, 2019 21:41
В каком состоянии опция "Copy contents of symbolic links"?
Обычно, по умолчанию, т.е. опция выключена. Но я проверял и с включённой: тот же плачевный результат.
DrKnS wrote:
Sat 27 Jul, 2019 21:41
Что имеется в виду?
Если мы копируем или перемещаем на другой диск symlink, указывающий на физический объект L:\SomePhysFolder, создать в каталоге назначения symlink, указывающий на этот же физический объект. Идея была, вроде бы, отвергнута в теме Hardlinks/symlinks/junctions — хардлинки/симлинки/связи, но на мой взгляд не слишком убедительно. Кстати, есть даже по крайней мере одна программа с описанным подходом.

Удаление содержимого каталогов при удалении символических ссылок

Posted: Sun 28 Jul, 2019 11:51
by DrKnS
Backslash wrote:
Sun 28 Jul, 2019 11:17
Если мы копируем или перемещаем на другой диск symlink, указывающий на физический объект L:\SomePhysFolder, создать в каталоге назначения symlink, указывающий на этот же физический объект.
Именно это и происходит при выключенной опции и при условии того, что приёмник поддерживает ссылки, и так было всегда (ну или последние лет 10 точно).

Удаление содержимого каталогов при удалении символических ссылок

Posted: Sun 28 Jul, 2019 12:17
by Backslash
DrKnS wrote:
Sun 28 Jul, 2019 11:51
Именно это и происходит при выключенной опции и при условии того, что приёмник поддерживает ссылки
Что, даже, если с одного сетевого диска NTFS на другой (тоже NTFS)? Я только что проверил с сетевого L: на C: и symlink-овая директория превратилась в физический каталог (при выключенной опции).

Удаление содержимого каталогов при удалении символических ссылок

Posted: Sun 28 Jul, 2019 15:02
by DrKnS
Backslash wrote:
Sun 28 Jul, 2019 12:17
Что, даже, если с одного сетевого диска NTFS на другой (тоже NTFS)?
Нет и так и задумано: hlf:CopyRule
Если сразу писать, что речь о сети - можно сэкономить время.
ссылка , равно как и содержимое физического каталога, на коий она указывала, удаляется
А это баг, да. Очень старый, еще аж с 1.7. Исправлено в 5435.

Удаление содержимого каталогов при удалении символических ссылок

Posted: Mon 29 Jul, 2019 12:17
by Backslash
Виноват-с. Да, речь всю дорогу шла о переносе с сетевого диска, скажем, M: на сетевой же, допустим, K:. И при такой операции как раз и происходит удаление содержимого физического каталога, как было описано выше. В 5436 тоже.

Удаление содержимого каталогов при удалении символических ссылок

Posted: Mon 29 Jul, 2019 22:51
by DrKnS
Backslash wrote:
Mon 29 Jul, 2019 12:17
В 5436 тоже
Действительно. Как-то там всё совсем нехорошо. 5437.