如何强制创建符号链接?


10

我有一个特定的目录,里面充满了按日期组织(命名)的其他目录。为便于参考,我有一个名为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,还是有另一种方法,我忽略了?

Answers:


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.