背景
举xfce4-terminal
个例子,我想通过输入来运行该程序term
。
当我输入时,which xfce4-terminal
它返回/usr/bin/xfce4-terminal
.
因此,我创建了一个符号链接:sudo ln -s /usr/bin/xfce4-terminal /usr/bin/term
。
现在我可以通过输入来执行该程序term
。
问题
我一直想知道这是否是实现目的的合理方法。询问最好的方法(甚至没有研究)可能是一个主观问题,但在这里我要求一个标准方法(如果有的话),或者我的方法可能有的任何优点和缺点。
我想到了以下替代方案:
- 重命名程序:
mv xfce4-terminal term
- 使用环境变量(但有很多方法可以做到这一点......)
- 首先要避免偷懒
我已经知道:
- 我可以利用Tab自动完成
- (在 GUI 中)我可以使用像Ctrl+ Alt+这样的快捷方式T
- 如果另一个程序被命名为“term”,则创建符号链接会有冲突的风险
- 重命名有破坏依赖关系的风险
环境:
uname --all
返回:
- Linux debian 4.19.0-18-amd64 #1 SMP
- Debian 4.19.208-1 (2021-09-29)
- x86_64 GNU/Linux
答案1
最安全的方法是使用别名,例如他们评论里已经提到了。
符号链接也可以工作,但请注意,某些程序会根据调用它们的名称来改变其行为。
例如,bash 脚本检查内容$0
并根据其调用不同的函数。
重命名程序本身就是自找麻烦:
任何依赖的东西xfce4-terminal
在重命名后都会一败涂地。下次更新时,您的系统上将有两个版本的二进制文件:-/