在不删除的情况下更改符号链接的目标

Change target of symlink without deletion

是否可以使用 Qt 更改符号链接的内容?

静态 QFile::link 和非静态 return false 如果链接名文件路径已经存在。

我只想重定向符号链接。 ln -sf 的类似物,但跨平台。

简答:否

引用docs

This function will not overwrite an already existing entity in the file system; in this case, link() will return false and set error() to return RenameError.

解决方案相当简单:首先明确删除 link,e。 G。在 link 上使用 QFile::remove(),然后对目标文件使用 QFile::link()(就像您已经做的那样)。

顺便说一句,有或没有 -sln -f 除了调用 unlink() 之外什么都不做。这可以在 BusyBox sources (line 128), while in the GNU coreutils 中方便地看到它有点模糊。