LINUX.ORG.RU
ФорумAdmin

Есть ли способ узнать, какие симовольные ссылки ведут на конкретный файл

 , , , ,


0

2

Вопрос такой: Есть видео файл ~/shared/video.mp4 и две символьные ссылки на него,

~/../linux.org.ru/video/link1.mp4 и

~/../old.linux.org/video/link2.mp4

Допустим по каким-то причинам мне нужно переместить видео ~/shared/video.mp4 на новое место. Как мне понять, что на него есть символьная ссылка.

Есть вариант использовать такую конструкцию:

find  ~/ -type l -ls | grep video.mp4

Но может быть есть вариант проще и лаконичнее?



Последнее исправление: SaintAnd (всего исправлений: 1)

прсомтреть все символьные линки :)
на целевом файле отметок, что на него есть символьная метка, не ставится.
у хардлинка (точнее в иноде) отмечается количество указывающих на него имен. но опять же «обратных» ссылок тоже нет.

если активно этим мудришь. напиши свой скрипт для формирования симлинков и собирай линки в свою базу.

pfg ★★★★★
()
Ответ на: комментарий от vodz

Задача в том, что если у меня этих ссылок тысячи, то я могу какую-то упустить, потому что не знаю всех мест где они могут располагаться и работа будет считаться не выполненой.

SaintAnd
() автор топика
Ответ на: комментарий от pfg

Да, я про эти ноды почитал. Жаль, что нет в линуксе такого механизма, для подкрепления ссылок. Раз уж так, то придётся скрипт писать :( Спасибо

SaintAnd
() автор топика
Ответ на: комментарий от SaintAnd

Жаль, что нет в линуксе такого механизма, для подкрепления ссылок.

Есть. Называется хардлинки (hardlink). И поэтому лучше использовать их, где это только возможно.

А с символьными ссылками, кроме find - больше никак.

Kroz ★★★★★
()
Ответ на: комментарий от SaintAnd

коль надо - сделай :) как минимум, отдельная база данных со ссылками. как максимум, самописная система управления файловым контентом :)
в фс сделано только то, что там нужно.

pfg ★★★★★
()
Ответ на: комментарий от SaintAnd

Задача в том, что если у меня этих ссылок тысячи, то я могу какую-то упустить

Какая разница сколько. У вас было видео, вы его переместили, создали ссылку, лежащую в пути где было видео и указывающую где теперь оно будет лежать. Если у вас с ссылками до этого был бардак - то это другая проблема и не влияет на текущую задачу.

vodz ★★★★★
()

только find, ссылка при обращении разворачивается в своё значение, т.е. банальная подстановка, мой любимый пример потролить народ, это спросить что будет в результате выполнения

echo "Hello" > file1
ln -s file1 file2
rm file1
echo "World" >> file2
cat file1
sparks ★★★★
()
Ответ на: комментарий от SaintAnd

прогоняешь find -xtype l и смотришь в выхлопе симлинки с порванными связями - восстаналвиваешь.

pfg ★★★★★
()
Ответ на: комментарий от SaintAnd

Жаль, что нет в линуксе такого механизма, для подкрепления ссылок.

Символьная она на то и символьная, это как указатель «До Бердянска направо 3 км» и этот указатель можно крутить в какую угодно сторону и даже перенести за 20000км, Бердянск останется на месте, но вот указатель уже не будет соответствовать действительности.

anc ★★★★★
()
Ответ на: комментарий от anc

Бердянск останется на месте, но вот указатель уже не будет соответствовать действительности.

По-моему, у человека затык и он никак не сообразит, что на месте поворота в Бердянск может быть новая ссылка, что тут ремонт дороги и объезд там.

vodz ★★★★★
()
Ответ на: комментарий от i-rinat

Спасибо всем ответившим, именно vodz pfg Kroz sparks anc. Было полезно всё это прогнать в cвоей голове.

И спасибо i-rinat за интересную команду.

SaintAnd
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.