lien symbolique vers un répertoire déjà existant

Existe-t-il un moyen approprié de relier /home/user/app/public à /home/user/public_html , compte tenu du fait que la cible existe déjà?

Si je fais l ln -s /home/user/app/public /home/user/public_html , je ln -s /home/user/app/public /home/user/public_html par avoir /home/user/public_html/public .

Je suppose qu’il serait également possible d’inverser l’action telle que ln -s /home/user/public_html /home/user/app/public . Cependant, je ne suis pas sûr de savoir comment éviter /home/user/app/public/public_html comme résultat final.

Lemme comprends votre problème de la bonne façon

Votre source est /home/user/public_html et je suppose qu’elle contient des fichiers. Et vous voulez créer un lien vers ce répertoire directement dans /home/user/app/public . De cette façon, vous pouvez faire quelque chose comme ls /home/user/app/public et voir les fichiers qui existent sur /home/user/public_html .

Si cela est correct, votre source est /home/user/public_html et la cible est /home/user/app/public . La commande appropriée est celle-ci:

 ln -s /home/user/public_html /home/user/app/public 

Assurez-vous simplement que /home/user/app/public n’est pas un répertoire ou un fichier valide avant d’entrer la commande.

Si j’ai bien compris votre question, vous vouliez savoir comment traiter les objectives existants. Si tel est le cas, deux scénarios sont possibles.

1) la cible existante est un fichier. Si tel est le cas, vous pouvez forcer la création du lien symbolique avec “-f”

2) la cible existante est un répertoire. Si tel est le cas, cela dépend de votre implémentation actuelle de la commande ln. L’argument “-n” peut être disponible, ce qui entraîne le traitement correct des liens symboliques vers les répertoires, au lieu de les dupliquer comme vous le dites.

Référence: https://unix.stackexchange.com/questions/207294/create-symlink-overwrite-if-one-exists