8
votes

Symlinks ne fonctionne pas lorsque le lien est effectué dans un autre répertoire?

WOW, je n'ai jamais vraiment utilisé des symboles auparavant auparavant, mais c'est vraiment Boglling: XXX

Pourquoi ne pouvez-je pas chat le lien symbolique dans le répertoire des copies?

Si je fais le symbole de l'intérieur des copies /, je peux le chat ça va bien. Si je fais le symbole symbolique dans le répertoire actuel, je peux aussi le chat aussi bien. Si je fais le symbole symbolique dans le répertoire actuel, puis déplacez-le sur copies /, je reçois "copies / copie.txt: aucun fichier ou répertoire de ce type".


0 commentaires

3 Réponses :


20
votes

Si vous créez un chemin relatif vers un lien symbolique, il le stockera comme un lien symbolique relatif. Les liaisons symboliques sont relatives à l'emplacement que le lien est dans, pas l'emplacement où il a été créé ou ouvert.


Veuillez utiliser un chemin absolu ou un chemin relatif au lien.

Modification: xxx

à: xxx


1 commentaires

Vous n'avez pas besoin d'utiliser un chemin absolu. Tant que vous préférez votre chemin avec un point (ce qui signifie «votre chemin actuel»), vous devriez être bon.



5
votes

Vous pouvez également utiliser un chemin relatif pour y parvenir. comme xxx

ceci fonctionnera

lorsque vous ouvrez le lien symbolique qu'il tente de faire référence au fichier à partir du répertoire des copies et que cela n'existe pas que vous obtenez cette erreur.

Lorsque vous utilisez un chemin relatif ou absolu, ce problème sera résolu.


4 commentaires

Lors de la rédaction d'un script qui fait des liens symboliques, existe-t-il un moyen de spécifier quel répertoire un chemin relatif doit être effectué à partir de?


Avec script, vous devriez aller pour un chemin absolu. Avoir un répertoire fixe pour contenir des liens symboliques, puis créer les liens relatifs à tout fichier dans le répertoire


Tous les symboles relatives sont par rapport à l'annuaire que le lien est intégré. Il n'est pas nécessaire qu'un lien doit pointer vers un fichier existant lors de la création (comme vous l'avez trouvé). Le choix du lien relatif ou absolu ne doit pas être fait sur la difomulte, ce qui fait le lien mais que vous souhaitez un lien relatif ou un absolu. N'oubliez pas que déplacer un lien relatif après avoir été créé modifie le chemin absolu du fichier qu'il pointe. Voyez ici pour la conversion: Stackoverflow.com/Questtions/2564634/...


Cela devrait être la réponse préférée. Pour un, si vous utilisez GIT, votre chemin absolu ne fonctionnera pas. Le truc pour préparer votre chemin avec un point ".", Ce qui signifie "vous position actuelle" ou un double point ".", Ce qui signifie "un répertoire d'un autre.



1
votes

Considérez un exemple dans lequel vous souhaitez symboliser vos journaux d'application à quelque part ailleurs, ce qui peut être un répertoire monté sur un répertoire secondaire dont la taille n'aura pas affecter votre serveur d'arrêter de travailler. Maintenant, le répertoire monté sera cible pour vous et vous devez créer un lien symbolique vers ce répertoire pour votre répertoire des journaux.

Supposons que votre répertoire d'application est / home / ubuntu / my_app et une fois que vous avez démarré votre application, il générera un répertoire de journal dans votre répertoire My_App. L'objectif final est maintenant de détourner le fardeau d'utilisation du disque vers le répertoire monté et de ne pas avoir notre répertoire de journal présent dans notre annuaire d'applications. Alors, allez-y et suivez les étapes ci-dessous: P>

mkdir /path_to_mounted_directory/log
ln -s /path_to_mounted_directory/log /home/ubuntu/my_app_log


0 commentaires