Risposte:
Dipende, se stai cercando di trovare collegamenti a un file specifico che viene chiamato, foo.txt,questo è l'unico buon modo:
find -L / -samefile path/to/foo.txt
D'altra parte, se stai solo cercando di trovare collegamenti a qualsiasi file che abbia un nome foo.txt, allora qualcosa di simile
find / -lname foo.txt
o
find . -lname \*foo.txt # ignore leading pathname components
-xtype lper trovare solo i
find . -lname '*foo.dir*'(corrisponde ad esempio file.txt -> ../foo.dir/file.txt)
Trova il numero di inode del file e quindi cerca tutti i file con lo stesso numero di inode:
$ ls -i foo.txt
41525360 foo.txt
$ find . -follow -inum 41525360
In alternativa, prova l' lnameopzione di find, ma non funzionerà se hai collegamenti simbolici relativi, ad esa -> ../foo.txt
$ find . -lname /path/to/foo.txt
-samefileopzione con -Lper lo stesso effetto, senza dover cercare tu stesso l'inode
fooè una directory, usa ln -di, in una riga:find . -follow -inum $(ls -di foo.txt |cut -d" " -f1)
Preferisco usare l' symlinksutilità, che è utile anche quando si cercano collegamenti simbolici interrotti. Installa da:
sudo apt install symlinks
Mostra tutti i collegamenti simbolici nella cartella e nelle sottocartelle correnti:
symlinks -rv .
-r: ricorsivo-v: verbose (mostra tutti i link simbolici, non solo quelli non funzionanti)Per trovare un collegamento simbolico specifico, basta grep:
symlinks -rv . | grep foo.txt