如何为特定文件或目录设置别名?

9 bash alias

我经常使用几个文件。例如一些配置文件或日志文件。假设 Apache 日志文件。我经常想tailgrep它。而不是写:

tail -50 /var/log/apache2/error_log

我更喜欢写

tail -50 apachelog

因此,它apachelog用作此文件名的别名。但是如果我在 my 中定义一个别名bashrc,它需要是一个完整的命令;它(显然)不能是文件名的别名,以便您以后可以引用它。有没有办法实现这一目标?

注意:我有各种各样的文件和要运行的各种不同的命令,因此为所有这些不同的选项创建函数或别名不是我的首选解决方案。

Gil*_*il' 10

您可以定义一个变量,并使用 a$来调用它的值:

apachelog=/var/log/apache2/error_log
tail -50 $apachelog
Run Code Online (Sandbox Code Playgroud)

你不会在 bash 中做得更好。在 zsh 中,您可以定义全局别名,这些别名在命令行中随处扩展:

alias -g apachelog=/var/log/apache2/error_log
tail -50 apachelog
Run Code Online (Sandbox Code Playgroud)

但我不推荐它,因为现在如果你想将字符串apachelog作为参数传递给命令,你需要记住引用它。


gle*_*man 8

您可以创建一个函数并“向后”编写您的命令

apachelog() {
  "$@" /var/log/apache2/error_log
}

apachelog tail -50
Run Code Online (Sandbox Code Playgroud)