Как найти и перечислить все символические ссылки, созданные для определенного файла?

Я создал много символических ссылок на разных путях для определенного файла или каталога. Я хочу весь список созданных путей символических ссылок (location).

Пример:

Я создал символические ссылки для каталога ~/Pictures во многих каталогах. Как перечислить все символические ссылки в этот каталог ~/Pictures?

Возможно ли это? Если да, то как?

1
задан 14 March 2014 в 19:55

3 ответа

Очень просто:

find / -lname /path/to/original/dir

Используйте опцию -lname

ПРИМЕЧАНИЕ. Помните, что символические ссылки могут быть где угодно, включая удаленную систему (если вы используете файлы ), поэтому вы не сможете найти их все.
6
ответ дан 24 May 2018 в 11:09
  • 1
    Также обратите внимание, что если символическая ссылка является относительным путем, как ../dir, то она не найдет абсолютный /path/to/original/dir, вы можете вместо этого использовать шаблон и отсеивать ложные срабатывания -lname \*dir – Jason S 3 December 2017 в 00:55

Попробуйте следующее:

ls -i ~/

277566 Pictures

find . -follow -inum 277566 (найдите каталоги с тем же номером inode)

Он отобразит все свои пути символических ссылок.

3
ответ дан 24 May 2018 в 11:09
  • 1
    Это найдет жесткие ссылки, а не символические ссылки. Жесткие ссылки содержат номера inode. символические ссылки имеют разные номера inode. inode символьной ссылки имеет путь вместо списка блоков. – hildred 4 March 2014 в 23:14
  • 2
    в вопросе не упоминается жесткая или мягкая символическая ссылка – nux 5 March 2014 в 01:19

Мне больше нравится этот однострочный:

find . -maxdepth 1 -type l -exec readlink -f '{}' \;

refs:

https://unix.stackexchange.com/questions/ 22128 / how-to-get-full-path-of-original-file-of-a-soft-symbolic-link

https://unix.stackexchange.com/questions/22128 / как к-получить полный путь-в-оригинал-файла-в-а-софт-символической линии связи

0
ответ дан 24 May 2018 в 11:09

Другие вопросы по тегам:

Похожие вопросы: