48 votes

Ruby: Comment puis-je obtenir la cible d'un lien symbolique?

J'ai une chaîne contenant le chemin du système de fichiers vers un lien symbolique existant. Je veux obtenir le chemin que ce lien pointe vers.

Fondamentalement, je veux le même que je passerais à travers ce morceau de hackery:

 s = "path/to/existing/symlink"
`ls -ld #{s}`.scan(/-> (.+)/).flatten.last
 

mais je veux le faire sans bombarder.

66voto

Inshallah Points 3769

Je pense que readlink est ce que vous recherchez:

 File.readlink("path/to/symlink")
 

46voto

piotrsz Points 742
 require 'pathname'
Pathname.new("symlink").realpath
 

ou readlink comme d'autres l'ont dit

12voto

Juan Ibiapina Points 21

Ou vous pouvez essayer:

 File.realpath("symlink_path")
 

Ce qui fonctionne pour les liens symboliques et les fichiers normaux.

Prograide.com

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.

Powered by:

X