我想/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
,正如您亲眼所见。