Я создал много символических ссылок на различные пути для определенного файла или каталога. Я хочу весь список созданных путей символических ссылок (местоположение).
Пример:
Я создал символические ссылки на ~/Pictures
каталог во многих каталогах. Как мне перечислить все символические ссылки на этот ~/Pictures
каталог?
Это возможно? Если да, то как?
command-line
symbolic-link
Авинаш Радж
источник
источник
Ответы:
Вот пример:
или, может быть, лучше:
чтобы избавиться от некоторых ошибок, таких как
Permission denied
,Too many levels of symbolic links
илиFile system loop detected
которыеfind
выдают их, когда не имеет необходимых разрешений или других ситуаций.-L
- Следуйте по символическим ссылкам.-xtype l
- файл является символической ссылкой-samefile name
- Файл ссылается на тот же индекс, что иname
. Когда-L
действует, это может включать символические ссылки.Примечания:
-xtype l
, а не цифру 1.-xtype
есть-type
.источник
Очень простой вариант использования
-lname
:От
man find
:Примечание . Помните, что символические ссылки могут быть где угодно, включая удаленную систему (если вы обмениваетесь файлами), поэтому вы не сможете найти их все.
источник
../dir
то она не найдет абсолют, который/path/to/original/dir
вы можете вместо этого использовать шаблон и отсеять ложные срабатывания-lname \*dir
Попробуй это :
find . -follow -inum 277566
(найти каталоги с тем же номером инода )Он будет отображать все свои пути символических ссылок.
источник
Мне больше нравится этот однострочный:
find . -maxdepth 1 -type l -exec readlink -f '{}' \;
рефов:
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
источник