To działa dla mnie, jaka jest wydajność strace ln -f -s /var/www/html/releases/build1390 app-current
?
Och, ponieważ jest to katalog, który należy dodać, -n
aby nie było dereferencji, a to powinno rozwiązać problem. -f
jest naprawdę wygodniejsze, ponieważ dodanie -f powoduje, że i tak się rozłącza. Chociaż myślę, że prawdopodobnie normalnie byłoby to kilkaset ms szybciej.
Na przykład, jeśli arf już wskazuje na / home:
strace With -n
:
strace ln -n -f -s / arf
...
symlink("/", "arf") = -1 EEXIST (File exists)
unlink("arf") = 0
symlink("/", "arf") = 0
strace Bez -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
Więc bez -n
arfa zostaje zdereferencjonowany, więc traktuję go jak arf, jakby to było rzeczywiście /
. W twoim konkretnym przykładzie, jeśli nie ma błędu, myślę, że prawdopodobnie utworzyłeś nowe łącze symboliczne /var/www/html/releases/build1390 app-current
i będziesz chciał to wyczyścić.