在目录上创建符号链接

在目录上创建符号链接

我想/usr/bin/local符号链接到/home/jonas/swift-5.3.3-RELEASE-ubuntu20.04/usr/bin/swift,因此我输入了以下命令:

sudo ln -s swift-5.3.3-RELEASE-ubuntu20.04/usr/bin/swift /usr/bin/local

不幸的是,现在/usr/bin/local是 swift 的符号链接,它的内容已经消失,如下所示:

lrwxrwxrwx 1 root root 45 Mär 29 13:24 /usr/bin/local -> swift-5.3.3-RELEASE-ubuntu20.04/usr/bin/swift

有什么方法可以治愈它吗?

答案1

如果您尝试创建指向某个本地版本 Swift 的符号链接并将该链接放在下/usr/local/bin,则解决方案是:

ln -s swift-5.3.3-RELEASE-ubuntu20.04/usr/bin/swift /usr/local/bin/swift

答案2

ln不会创建与现有目录同名的符号链接。在这种情况下,语法将被评估为

   ln [OPTION]... TARGET... DIRECTORY

这意味着:如果是现有目录,则将在该现有目录中创建/usr/bin/local一个名为目标(目标是swift-5.3.3-RELEASE-ubuntu20.04/usr/bin/swift所以名称是 )的链接。swift

当然,/usr/bin/local如果存在类似名称的符号链接,它也不能被替换。

因此,从您的报告中,我们可以放心地假设您的系统上没有以前的/usr/bin/local文件夹。通常,这样的文件夹在标准 Linux 系统上不存在。因此,您的命令/usr/bin/local在中创建了一个符号链接/user/bin,正如您亲眼所见。

相关内容