为远程服务器的 rsync 本地目录创建别名 - 这是不好的做法吗?

为远程服务器的 rsync 本地目录创建别名 - 这是不好的做法吗?

免责声明:我不是超级用户。

问题:每次我想将我的服务器与我机器上的开发目录同步时,我都会写出这个问题:

rsync -chavzP --stats user@host:/remote/ ~/local/

在我的 .zshrc 或其他文件中创建一个别名,这样我就不必每次都输入这些内容,这是不好的做法吗?用户名和主机名总是很棘手,而且充满了数字。我发现自己大多数时候都必须查找它。如果这是不好的形式(我感觉是这样的),我还应该采取哪些其他方法来节省时间?

答案1

多年前,当我第一次开始使用 Bash shell 时,我不愿意定义别名,以防我变得依赖它们,而如果在另一个没有定义我的 shell 别名的系统上,我就会迷失方向。

为了重复复杂的命令(例如您的rsync命令),我使用了Ctrl-RBash 中的功能,该功能允许通过 shell 历史记录向后搜索以前输入的命令。

然而,这并不可靠,几年后,我得出结论,不使用别名只是愚蠢的行为。它们是几十年前发明的(我们要感谢 C shell 的创建者 Bil​​l Joy )——原因很简单:输入长命令需要时间和精力。

大多数人无法轻易记住长命令,特别是如果他们只是偶尔使用它们,并且上述rsync命令是别名的完美用例,因为它也不需要任何参数(在这种情况下,将使用 shell 函数)。

此外,如果您需要使用类似的命令,将别名存储在您的 shell 启动文件中可以节省时间,因为您不必从外部来源查找命令的详细信息。

如今,用户通常会将自定义 shell 别名、函数、配置文件和脚本存储在服务器上,以便在使用新系统或不同系统时可以检索它们。有些人使用 Dropbox,有些人使用 GitHub,而其他人则将它们上传到自己的个人网络空间。这样,他们就可以随时使用自己的 shell 自定义设置。

结论/TLDR

使用此类别名是一种很好的做法,可以节省时间和输入——这也是创建它们的原因。将它们保存在 shell 启动文件中,例如.zshrc意味着它们将始终可供您使用,并且被认为是 Unix shell 用户的最佳实践。

也可以看看

何时使用别名、何时使用脚本以及何时编写函数

参考

以下是 Bill Joy 在他的C shell 简介

该机制可用于简化您输入的命令、为命令提供默认参数或对命令及其参数执行转换。

相关内容