创建符号二进制链接时出错

创建符号二进制链接时出错

我想为 vi 创建一个符号链接,以便在从控制台运行 vim 调用时查看该程序:

ln -s /usr/bin/vi /usr/bin/vim`
ln: failure to create symbolic link «/ usr / bin / vim»: The file already exists

我该怎么做才能看到它指向 vim

答案1

鉴于您的 CentOS 原始标签,我假设您有一个/etc/profile.d/vim.sh设置别名的文件:

alias vi >/dev/null 2>&1 || alias vi=vim

如果你想vi在输入时运行vim,我建议添加到你自己的~/.bashrc

unalias vi
alias vim=vi

答案2

解决方案:

您可以使用 -f 强制删除目标文件(在更改任何内容之前进行测试!)

ln -sf /usr/bin/vi /usr/bin/vim

对我有用!

例子:

[root@vvek-workstation grep]# ln -ss ./vi ./vim 
ln: failed to create symbolic link ‘./vim’: File exists
[root@vvek-workstation grep]# ln -sf ./vi ./vim 
[root@vvek-workstation grep]# ls -lart
total 0
drwxr-xr-x. 9 root root 228 Mar 20 15:20 ..
-rw-r--r--  1 root root   0 Mar 20 16:00 vi
lrwxrwxrwx  1 root root   4 Mar 20 16:00 vim -> ./vi
drwxr-xr-x  2 root root  27 Mar 20 16:00 .

答案3

是的,如果您已经有/usr/bin/vim,则该目录中不能再有同名的文件。但是,/usr/bin(通常)不是检查可执行文件的唯一位置。

运行echo $PATH以从左到右查看已检查的目录列表。希望您能在那里找到类似的/home/(username)/bin位置/usr/local/bin。在这种情况下,

ln -s /usr/bin/vi /usr/local/bin/vim 

将覆盖所有用户的默认 vim。 (他们仍然可以打电话/usr/bin/vim索取原件。)

相关内容