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


9

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

tail -50 /var/log/apache2/error_log

我更喜欢写

tail -50 apachelog

因此,它apachelog充当该文件名的别名。但是,如果我在自己的别名中定义别名bashrc,则它必须是一个完整的命令;它(显然)不能是文件名的别名,以便您以后可以引用它。有没有办法做到这一点?

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

bash  alias 

Answers:


10

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

apachelog=/var/log/apache2/error_log
tail -50 $apachelog

你不会在bash上做得更好。在zsh中,您可以定义全局别名,该别名在命令行上可以扩展到任何地方:

alias -g apachelog=/var/log/apache2/error_log
tail -50 apachelog

但是我不建议这样做,因为现在如果您要将字符串apachelog作为参数传递给命令,则需要记住将其引号。


好的答案,尤其是“不推荐此内容”部分。这听起来像是灾难性的食谱,别名选择
不当

8

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

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

apachelog tail -50

2

目录的别名是链接。这就是为什么一种可能性是在一个目录中创建一堆链接到感兴趣的文件。然后,别名rtail到尾部,以便它在该目录中查找文件。


0

把它放在你的〜/ .bashrc中

 alias tailapache='tail -50 /var/log/apache2/error_log'

做一个源〜/ .bashrc或开始一个新的bash会话...

那么您只需要输入“ tailapache”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.