创建别名或添加路径?

创建别名或添加路径?

我刚刚在我的 Linux 机器上安装了一个新程序(我们称之为 foo)。该程序的文件位于一个不寻常的位置,目前不属于我的$PATH。如果我想在任何目录中轻松地从终端运行此程序,最好更改我的 $PATH 变量还是创建别名?这有关系吗?

例如,别名方法将添加以下内容:alias foo="/path/to/program/foo.sh"

$PATH 方法将是:export PATH=/path/to/program;$PATH

哪个更好?为什么?

答案1

“更好”是一个有点模糊的术语,但我建议将程序的目录添加到$PATH,因为(与别名不同)它将被你的 shell 的子进程继承。

例如,如果您从 shell 启动编辑器,然后想要从编辑器内部运行 foo.sh,例如编译您正在编辑的文件或转换其文本,那么编辑器将知道在哪里找到 foo.sh;如果您添加别名,则需要在从编辑器运行 foo.sh 时指定它的完整路径。

答案2

还有第三个选项。从 $PATH 中的一个目录创建到程序的链接。可以专门为此目的创建一个新目录(链接到非标准位置的程序)。这样,如果将来添加更多类似的程序,PATH 就不会受到污染,而且 Aaron 还提到,它不会依赖于别名不可用的地方的别名。

答案3

绝对路径(这里是您的别名)比设置变量更快PATH

因为当你设置PATH变量例如“/path/to/program”并且你想要执行foo.shshell查看PATH变量然后在该目录(/path/to/program)中搜索foo.sh但是当你使用绝对路径(这里是你的foo变量)时,shell不会查看路径然后搜索该目录(/path/to/program)来查找“foo.sh”。

相关内容