symbolic link: find all files that link to this file

前端 未结 3 1385
挽巷
挽巷 2020-12-12 10:33

Hallo all, I need to do this in linux:

  • Given: file name \'foo.txt\'
  • Find: all files that are symbolic links to \'foo.txt\'

How to do it

相关标签:
3条回答
  • 2020-12-12 11:15

    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
    
    0 讨论(0)
  • 2020-12-12 11:16

    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
    
    0 讨论(0)
  • 2020-12-12 11:35

    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
    
    0 讨论(0)
提交回复
热议问题