我有一个特定的目录,里面充满了按日期组织(命名)的其他目录。为便于参考,我有一个名为current
最新链接的符号链接。
在创建新日期目录的脚本中,我希望创建或修复current
符号链接以指向创建后的最新目录。
我以为适当的命令就是
ln -fs 2017-03-01 current
如果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
描述
...
当最终操作数命名现有目录时,将采用第二种提要形式。
因此,似乎没有办法重新指向当前指向目录的符号链接,该目录指向新目标,其中新目标的名称与符号链接的名称不同。因此,ln -fs
它不像我认为的那样起作用。
要我rm current
,还是有另一种方法,我忽略了?