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