Скажите, а в этих ваших линуксах так и не придумали способа автоматически удалять симлинки при удалении файла оригинала?
И не надо, например.
Не нужно так делать
TWT, Мне была-бы радость, например. Если я удаляю файл, то делаю это в твёрдом уме и трезвой памяти, но вот помнить где лежат симлинки на оный (и лежат-ли вообще) как-то ни разу не улыбает. Хочется что-б оно как-нить само за собой прибирало. По типу как shadows в полуоси. Есть объект - есть тени, нет объекта - "отбрасывать тени" некому. ;-) Ну или что-б это хотя-бы опционально было.
Tenno-Seremel, Обоснуй.
Кто обоснуй? Да ты сам обоснуй!
Твой вариант даёт нихера, кроме головной боли слежения (как ты себе это представляешь?).
Также он производит изменения ГДЕ-ТО кроме того, где ты сейчас оперируешь, у других пользователей. Вот снёс юзер от рута пакет с обойками, на который у него симлинк был и он исчез. А потом пакет вернулся, кто вернёт симлинк? Никто.
Tenno-Seremel, symlinkd - это идея! да. только первый вопрос это не решает
Tenno-Seremel, гениально! если у кого вдруг не было с тормозов флешками, то теперь наконец будет)
Tenno-Seremel, Зачем отдельную базу? Если в ФС есть средства хранения метаинформации(расширенные атрибуты в JFS например) то туда и класть. При удалении смотрим в EA удаляемого файла, под именем например SYMLINKS, содержащем список симлинков идём и удаляем. Если симлинк на носителе который сейчас не подключён, то либо пропускаем, либо таки да -- symlinkd записывает инфу в свою базу на отложенное удаление вида UUID девайса, список симлинков. В расширенном атрибуте можно и пользователей создавших симлинки прописать, что-б, в зависимости от настроек, не удалять симлинки пользователей не овнеров файла.
Tenno-Seremel, Он-же не сам, волшебным образом, вернулся? Его юзер вернул. Он-же заново пересоздаст и симлинк.
Oxyd, а винда сама удаляет ярлыки? а как она это делает?
думается мне, что там может быть очень дубовый вариант: удалять ведущие вникуда ярлыки, перед тем, как их увидит пользователь, когда просматривает папку, в которой эти ярлыки были, а не при удалении таргетов. тогда никаких symlinkd с базами не нужно.
Tenno-Seremel, идеально!