Насколько я знаю, нет простого способа перечислить все символические ссылки, указывающие на индекс. Поэтому я бы рекомендовал использовать стандартную утилиту поиска с ключами -L и -samefile :
- -samefile будет сравнивать в зависимости от inode вашего целевого файла,
- -L будет включать в поиск символические ссылки, что вы и ищете.
Вот пример с /bin /dash в /bin:
$ find -L /bin -samefile /bin/dash -exec ls -lhi {} \;
786515 lrwxrwxrwx 1 root root 4 Mar 29 2012 /bin/sh -> dash
786436 -rwxr-xr-x 1 root root 108K Mar 29 2012 /bin/dash
Из этого вывода вы можете видеть как номер индекса (первый столбец), так и стрелку (последний), которая /bin /sh в символической ссылке на /bin /dash. Если бы это были жесткие ссылки, номер инода был бы одинаковым для разных файлов, и в последнем столбце не было бы стрелки.
Наконец, если бы мне нужно было искать эти ссылки во всей файловой системе, я бы исключил из поиска некоторые каталоги, такие как /dev, /proc и /sys . Это будет сделано с -Path и -prune swicthes (вы можете добавить столько , сколько вы хотите с помощью ключа -o значения или), 2>/ DEV / нуля здесь , чтобы скрыть возможные ошибки:
$ sudo find -L / \( -path /dev -o -path /proc -o -path /sys \) -prune -samefile /bin/dash -exec ls -lhi {} \; 2>/dev/null
Поскольку поиск во всей файловой системе может занять много времени (в основном в зависимости от ее размера), я буду рассматривать этот вариант в качестве последнего средства. Это все равно что искать иголку в стоге сена: это не невозможно, но требует много усилий ...