3

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

то есть:

pwd =>  /home/user/source/

vdir 
lrwxrwxrwx 1 user group   24 2011-04-08 10:59 Symlink -> /home/user/source/Test
drwxr-xr-x 2 user group 4096 2011-04-08 10:59 Test

Используя этот пример, я хочу знать, где найти Symlink, потому что он ссылается на Test.

Я использую Ubuntu 10.04.

2 ответа2

1

Вы должны просканировать всю файловую систему на наличие программных ссылок, затем разрешить их и посмотреть, указывают ли они на одно и то же местоположение. Не пытайтесь сравнивать текст назначения ссылки, так как это может пройти через другую жесткую или мягкую ссылку; вам нужно сравнить иноды, вероятно.

1

Может быть, вы могли бы попробовать что-то вроде:

sudo find / -lname /path/to/your/file

Но учтите, что некоторые ссылки могут быть определены с относительными путями.

Или вы можете перечислить все символические ссылки и grep для вашего файла, используя:

sudo find / -type l | grep /path/to/your/file

("l" в «-типе l» не номер один, а L)

Но у каждого метода есть свои недостатки. Может кто знает лучше?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .