web-dev-qa-db-fra.com

existe-t-il un moyen de voir le contenu réel d'un lien symbolique?

Quand tu fais

cat some-symlink-to-some-real-file

il montre le contenu du vrai fichier, pas ce qui se trouve dans le lien symbolique lui-même. Existe-t-il un moyen de voir ce qu'il contient réellement?

43
fabio

Le ls -l la commande vous montrera que:

$ ls -l foo
lrwxrwxrwx 1 user group 11 2010-12-31 19:49 foo -> /etc/passwd

Ou la commande readlink :

$ readlink foo
/etc/passwd

Ainsi, le lien symbolique foo pointe vers le chemin /etc/passwd.

50
PleaseStand

Vous pouvez appeler la fonction readlink(2) , qui placera le nom lié dans un tampon.

Notez que le résultat a une longueur (stocké dans la valeur de retour) plutôt que d'être terminé par NUL. Donc, si vous souhaitez l'utiliser comme chaîne, ajoutez vous-même un NUL.

La plupart des langages de script/niveau supérieur, tels que Perl ou python, fourniront un wrapper de lien de lecture qui se convertit au type de chaîne approprié au langage, de sorte que vous ne serez pas dérangé par des détails tels que la terminaison NUL.

8
Ben Voigt

En ce qui concerne la page de manuel http://man7.org/linux/man-pages/man7/symlink.7.html le lien symbolique est un fichier normal (avec un drapeau spécial) avec un chemin vers la cible dans son contenu. Vous pouvez donc copier le lien symbolique vers la partition FAT et y lire le contenu.

2
Pavel Patrin

Essayer

find . -type l -exec ls -la {} \;
1
Eric Fortis