如何强制创建符号链接?

Wil*_*ard 15 symlink rm ln

我有一个特定的目录,其中包含按日期组织(命名)的其他目录。为了便于参考,我有一个符号链接,称为current指向最新的符号链接。

在创建新日期目录的脚本中,我希望创建或修复current符号链接以指向创建后的最新目录。

我认为适当的命令只是,例如,

ln -fs 2017-03-01 current
Run Code Online (Sandbox Code Playgroud)

如果current符号链接尚不存在,则此方法有效。


但是,如果current符号链接已经创建(并且指向,让我们说,在目录2017-02-28),这不起作用:

除删除符号链接current,并创建一个新的符号链接current指向2017-03-01,其结果反而是一个破碎的符号链接称为 2017-03-01指向自身,休息里面的目录2017-02-28(这是符号链接current指向,仍然分)。

这让ln感到困惑,所以我阅读了. 原来这是预期的行为:

概要

ln [-fs] [-L|-P] source_file target_file

ln [-fs] [-L|-P] source_file... target_dir
Run Code Online (Sandbox Code Playgroud)

描述

...

当最终操作数命名现有目录时,应采用第二种概要形式。


那么,似乎没有任何方法可以将当前指向目录的符号链接重新指向新目标,其中新目标的名称与符号链接的名称不同。所以ln -fs不像我想的那样工作。

必须rm current吗,还是我忽略了另一种方法?