为什么我把 "alias" 作为别名的最后选择

作者:Evan Hahn,发布于 2025 年 3 月 5 日

别名是我在自定义 dotfiles 时最先添加的功能之一。例如,这是我早期定义的一个别名:

alias g=git

现在,我可以使用 g 代替 git,这为我每天运行数十次的命令节省了一些时间!

# 这两个命令现在是等效的:
git status
g status

我过去常常使用 alias 来定义这些别名。毕竟……我定义的就是一个别名! 但随着时间的推移,我认为我发现了一种更好的方法:在我的 $PATH 中的脚本

工作原理

在我的主目录中,我有一个名为 bin 的脚本文件夹。例如,这是一个简化版的 ~/bin/g

#!/usr/bin/env bash
exec git "$@"

运行此脚本基本上就是运行 git。 我将此文件夹添加到我的 $PATH 中。(请参阅 Julia Evans 的关于如何执行此操作的指南。)在我的 .zshrc 中,我有一行这样的代码:

export PATH="$HOME/bin:$PATH"

现在,当我输入 g 时,它会运行该脚本。

这与别名的行为方式相同。和以前一样,g statusgit status 是等效的。

# 这两个命令仍然相同:
git status
g status

这比 alias 冗长得多。那么 为什么要这样做呢?

脚本优于别名的优点

与使用 alias 相比,脚本有几个优点:

这些优点足以说服我将脚本作为我的默认设置,即使对于像 g=git 这样的简单别名也是如此。

别名优于脚本的优点

脚本是我的首选,但它们并不完美。编程中的一切都有权衡!

关于 alias,有几件事做得更好:

选择你喜欢的

最终,这个决定没有太大区别。两种方法(别名和脚本)非常相似。但对我来说,我默认使用脚本,因为我喜欢它们能做的事情。