如何更改 OS X 中的符号链接?

mk1*_*k12 24 osx-leopard path symbolic-link macos

如何更改符号链接指向的位置,而不删除并创建新的(使用ln -s "/path/to/point/to" "/path/where/symlink/is")?

当我尝试对 Java 的“当前”符号链接执行此操作时,Java 甚至无法工作(至少在命令行中说“分段错误”)但是当我使用 Time 恢复旧的“当前”符号链接时它恢复正常机器(但后来我发现/Applications/Utilities/Java Preferences.app无论如何我都应该使用它来更改当前的 Java 版本)。

小智 42

ln -hfs newlocation existinglink
Run Code Online (Sandbox Code Playgroud)

或者

ln -nfs newlocation existinglink
Run Code Online (Sandbox Code Playgroud)

将更改现有链接以指向新位置

( -n 和 -h 在操作上是相同的)

来自'man ln'

-h 如果 target_file 或 target_dir 是符号链接,则不要跟随它。这对于 -f 选项最有用,用于替换可能指向目录的符号链接。

-f 如果目标文件已经存在,则取消链接它以便可能发生链接。(-f 选项会覆盖任何以前的 -i 选项。)

-s Creae 符号链接

  • “-nfs”版本也适用于 Linux,因此如果有人关心的话,它更便携。 (2认同)

小智 11

尝试:

unlink /path/to/current/link
ln -s /path/to/target /path/to/symbolic/link
Run Code Online (Sandbox Code Playgroud)


mar*_*k4o 10

mkdir /path/where/newsymlink
ln -s /path/to/point/to /path/where/newsymlink/is
mv /path/where/newsymlink/is /path/where/symlink/
rmdir /path/where/newsymlink
Run Code Online (Sandbox Code Playgroud)

然而,Java Preferences 实用程序改变的不仅仅是一个符号链接;您应该使用它来确保 Java 版本已更改。