不能覆盖符号链接RedHat Linux

我已经创build了一个符号链接:

sudo ln -s /some/dir new_dir 

现在我想覆盖符号链接指向一个新的位置,它不会覆盖。 我努力了:

 sudo ln -f -s /other/dir new_dir 

我总是可以sudo rm new_dir ,但如果可能的sudo rm new_dir ,我宁愿让它覆盖。 有任何想法吗?

 ln -sfn /other/dir new_dir 

为我工作。 -n不解引用目标符号链接。

你可以创build它,然后移动它:

 sudo ln -f -s /other/dir __new_dir sudo mv -Tf __new_dir new_dir 

编辑:缺less-Tf,将目录视为常规文件,不要提示覆盖。

这样你会覆盖它。

既然从mikeytown2s的评论被破坏,我会解释为什么redent84s答案更好:

 ln -sfn newDir currentDir 

做这个工作, 这不是一个primefaces操作 ,你可以用strace看到:

 $ strace ln -snf newDir currentDir 2>&1 | grep link unlink("currentDir") = 0 symlink("newDir", "currentDir") = 0 

当你有一个web服务器的根目录指向这个符号链接时,这很重要。 它可能会导致错误,而符号链接被删除,并再次创build – 即使在微秒的时间跨度。

为了防止错误,请使用:

 $ ln -s newDir tmpCurrentDir && mv -Tf tmpCurrentDir currentDir 

这将创build一个临时链接,然后在primefaces操作覆盖currentDir