symbolic link: find all files that link to this file
Solution 1:
It depends, if you are trying to find links to a specific file that is called foo.txt,
then this is the only good way:
find -L / -samefile path/to/foo.txt
On the other hand, if you are just trying to find links to any file that happens to be named foo.txt
, then something like
find / -lname foo.txt
or
find . -lname \*foo.txt # ignore leading pathname components
Solution 2:
Find the inode number of the file and then search for all files with the same inode number:
$ ls -i foo.txt
41525360 foo.txt
$ find . -follow -inum 41525360
Alternatively, try the lname
option of find
, but this won't work if you have relative symlinks e.g. a -> ../foo.txt
$ find . -lname /path/to/foo.txt
Solution 3:
I prefer to use the symlinks
utility, which also is handy when searching for broken symlinks. Install by:
sudo apt install symlinks
Show all symlinks in current folder and subfolders:
symlinks -rv .
-
-r
: recursive -
-v
: verbose (show all symlinks, not only broken ones)
To find a specific symlink, just grep
:
symlinks -rv . | grep foo.txt