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

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

Пример:

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

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

Вот пример:

find -L /dir/to/start -xtype l -samefile ~/Pictures

или, может быть, лучше:

find -L /dir/to/start -xtype l -samefile ~/Pictures 2>/dev/null

чтобы избавиться от некоторых ошибок, таких как Permission denied, Too many levels of symbolic links, или File system loop detected который find выбрасывает их, когда у него нет нужных разрешений или в других ситуациях.

  • -L - Переходите по символическим ссылкам.

  • -xtype l - Файл является символической ссылкой

  • -samefile name - Файл ссылается на тот же индекс, что и name. Когда -L по сути, это может включать символические ссылки.

Записи:

  • Используйте строчную букву L в -xtype l, а не цифра 1.
  • На macOS / Darwin, -xtype является -type.

Очень просто, используйте опцию -lname:

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

От man find:

-lname pattern       File is a symbolic link whose contents match shell pattern pattern.  The       metacharacters do not treat `/' or `.' specially.  If the -L option or the       -follow option is in effect, this test returns false unless the symbolic link       is broken.

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

Попробуйте это :

ls -i ~/277566 Pictures

find . -follow -inum 277566 ( найдите каталоги с одинаковыми индекс число )

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

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

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/21984/list-symlinks-in-current-directory

Вам нужно выполнить исчерпывающий поиск, количество не сохраняется, как для жестких ссылок. Посмотрите один из ответов, используя поиск.