символьная ссылка: найти все файлы, которые ссылаются на этот файл
Алло все, мне нужно сделать это в linux:
- дано: имя файла ' foo.txt'
- найти: все файлы, которые являются символическими ссылками на ' foo.txt'
Как это сделать? Спасибо!
3 ответа:
это зависит, если вы пытаетесь найти ссылки на конкретный файл, который называется
foo.txt,тогда это единственный хороший способ:find -L / -samefile path/to/foo.txtС другой стороны, если вы просто пытаетесь найти ссылки на любой файл с именем
foo.txt, потом что-то вродеfind / -lname foo.txtили
find . -lname \*foo.txt # ignore leading pathname components
найдите номер индекса файла, а затем найдите все файлы с одинаковым номером индекса:
$ ls -i foo.txt 41525360 foo.txt $ find . -follow -inum 41525360в качестве альтернативы, попробуйте на
find, но это не будет работать, если у вас есть относительные ссылки, напримерa -> ../foo.txt$ find . -lname /path/to/foo.txt
Я предпочитаю использовать
symlinksутилита, которая также удобна при поиске сломанных символических ссылок. Установите по:sudo apt install symlinksпоказать все символические ссылки в текущей папке и подпапках:
symlinks -rv .
-r: рекурсивный-v: подробный (показать все символические ссылки, а не только сломанные)найти конкретную ссылку, просто
grep:symlinks -rv . | grep foo.txt