Cela fonctionne pour moi, quelle est la sortie de strace ln -f -s /var/www/html/releases/build1390 app-current
?
Oh, puisque c’est un répertoire que vous devez ajouter -n
sans déréférence, cela devrait résoudre le problème. -f
est vraiment plus pratique puisque l’ajout de -f le dissocie de toute façon. Bien que je suppose que cela se produirait probablement quelques centaines de ms plus rapidement sur un système normalement chargé.
Par exemple, si arf pointe déjà vers / home:
strace Avec -n
:
strace ln -n -f -s / arf
...
symlink("/", "arf") = -1 EEXIST (File exists)
unlink("arf") = 0
symlink("/", "arf") = 0
strace Sans -n
:
strace ln -f -s / arf
...
write(2, "ln: "..., 4ln: ) = 4
write(2, "`arf/': cannot overwrite director"..., 34`arf/': cannot overwrite directory) = 34
write(2, "\n"..., 1) = 1
Donc, sans que l' -n
arf soit déréférencé, il est traité comme si c'était en réalité /
. Dans votre exemple particulier, s'il n'y a pas d'erreur, je pense que vous avez probablement créé un nouveau lien symbolique à l'intérieur de /var/www/html/releases/build1390 app-current
et que vous voudrez nettoyer cela.