web-dev-qa-db-fra.com

Créer un lien symbolique absolu vers le répertoire actuel

Je suis maintenant sous un répertoire avec un chemin très long. Pour la visite future plus rapide, je voudrais créer un lien avec cela.

J'ai essayé

ln -s . ~/mylink

~/mylink réellement liens vers ~. Alors puis-je développer ~ dans le nom de chemin obsolue, puis donnez-le à ln?

12
Tim

Un symbolique stocke réellement le chemin que vous donnez littéralement, comme une chaîne¹. Cela signifie votre lien ~/mylink contient ". "(un caractère). Lorsque vous accédez au lien, ce chemin est interprété par rapport à l'endroit où le lien est plutôt que lorsque vous avez réalisé le lien.

Au lieu de cela, vous pouvez stocker le chemin actuel que vous souhaitez dans le lien:

ln -s "$(pwd)" ~/mylink

utilisation Substitution de commande pour mettre la sortie de pwd (nom du répertoire de travail) dans votre ligne de commande. ln voit le chemin complet et le stocke dans votre symbole symbolique, qui pointera ensuite vers le bon endroit.

¹ Plus ou moins.

19
Michael Homer

Tu devrais utiliser:

ln -s "$(cd . && pwd)" ~/mylink

ou:

ln -s "$(pwd -P)" ~/mylink

obtenir le bon résultat pour le répertoire de travail actuel. Cela peut être changé pendant que vous y travailliez comme dans la présente question .

7
cuonglm