Bonjour à tous, j'ai besoin de faire cela sur Linux :
- Donné : nom du fichier 'foo.txt'
- Rechercher : tous les fichiers qui sont des liens symboliques vers 'foo.txt'
Comment faire ? Merci !
Bonjour à tous, j'ai besoin de faire cela sur Linux :
Comment faire ? Merci !
Il 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 chemin/vers/foo.txt
D'autre part, si vous essayez simplement de trouver des liens vers n'importe quel fichier qui s'appelle foo.txt
, alors quelque chose comme
find / -lname foo.txt
ou
find . -lname \*foo.txt # ignorer les composants du chemin d'accès en tête
Recherchez le numéro d'inode du fichier, puis cherchez tous les fichiers avec le même numéro d'inode:
$ ls -i foo.txt
41525360 foo.txt
$ find . -follow -inum 41525360
Alternativement, 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 lors de la recherche de liens symboliques cassés. 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
: verbeux (afficher tous les liens symboliques, pas seulement les liens cassés)Pour trouver un lien symbolique spécifique, il suffit d'utiliser grep
:
symlinks -rv . | grep foo.txt
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.