Bonjour à tous, je dois le faire sous Linux:
Comment faire? Merci!
Cela dépend si vous essayez de trouver des liens vers un fichier spécifique appelé foo.txt,
alors c’est le seul bon moyen:
find -L / -samefile path/to/foo.txt
D'autre part, si vous essayez simplement de trouver des liens vers le fichier any qui porte le nom foo.txt
, alors quelque chose comme
find / -lname foo.txt
ou
find . -lname \*foo.txt # ignore leading pathname components
Recherchez le numéro d'inode du fichier, puis recherchez tous les fichiers portant le même numéro d'inode:
$ ls -i foo.txt
41525360 foo.txt
$ find . -follow -inum 41525360
Sinon, essayez l'option lname
de find
, mais cela ne fonctionnera pas si vous avez des liens symboliques relatifs, par exemple. a -> ../foo.txt
$ find . -lname /path/to/foo.txt
Je préfère utiliser l'utilitaire symlinks
, qui est également pratique pour rechercher des liens symboliques rompus. Installer par:
Sudo apt install symlinks
Afficher tous les liens symboliques dans le dossier actuel et les sous-dossiers:
symlinks -rv .
-r
: récursif-v
: verbose (affiche tous les liens symboliques, pas seulement ceux qui sont brisés)Pour trouver un lien symbolique spécifique, il suffit de grep
:
symlinks -rv . | grep foo.txt