如果我想在中为可执行文件添加别名/usr/local/bin
,是否有正确的有什么方法可以创建这样的别名?我该如何创建?软链接?硬链接?还是其他?
例如,当我
apt-get install vim;
Aptitude 将别名/usr/local/bin/vi
为/usr/local/bin/vim
(如果我没记错的话)
答案1
从技术上讲,有一种方法可以为默认应用设置“别名”。您遇到的sudo apt-get install vim
是Debian 替代系统。
基本上,该系统在/etc/alternatives/
文件夹中有默认应用程序列表,这些应用程序是指向您拥有的任何默认应用程序的符号链接。在安装之前,vim
您有vim.tiny
,因此vi
会符号链接到/etc/alternatives/vi
,然后符号链接到/usr/bin/vim.tiny
。一旦您获得实际的vim
,这些符号链接都会更新为最终指向vim
。
当然,可以通过手动方式完成sudo update-alternatives --config vi
。当然,没有什么可以阻止您在那里创建自己的符号链接。但是,对于不会有很多不同实现的程序,例如screen
,您可以不去管它们。只要/usr/bin
在您的$PATH
变量中(它应该始终存在),您就可以输入它myappname
,它就会运行。
答案2
不管你做什么,不要硬链接。
例如,当你尝试删除文件时,硬链接会导致令人困惑的问题,因为如果你不记得删除它两次它还在那儿。
对于程序而言,这可能会导致难以调试的行为,因为程序可能仍位于硬链接位置。根据PATH
环境变量的内容,它可能在与现在不同的情况下执行。
硬链接就像goto
编程中的 s:一个古老时代的遗留,现在被认为有害。