Si j'ai un lien symbolique /var/opt/foo
créé avec ln -fs /path/to/target/dir foo
. Comment puis-je dans un script qui ne voit que le lien obtenir /path/to/target/dir
?
Ce que je veux réaliser dans le script, c'est rm -rf /path/to/target/dir
avant moi ln -fs /path/to/another/dir foo
.
readlink()
appel système depuis l'époque de 4.2BSD. L'readlink
utilitaire BSD actuel a été publié avec FreeBSD 4.10. Il a été (re) implémenté en tant que lien dur pour lastat
commande ( page de manuel MacOS X page de manuel FreeBSD 9 ). Notez qu'il n'a pas d'-m
option.-f
etreadlink -f
fonctionne aussi bien (en supposant que la cible du lien existe). Dans BSD,realpath
semble être une autre alternative àreadlink -m
.Une façon est (j'espère une meilleure version)
la source
readlink
est votre ami.