我有以下有效命令:
ls -la | awk '$5 > 2'
我正在尝试为整个事情起别名。如果我尝试一种天真的方式:
alias ll "ls -la | awk '$5 > 2'"
这不起作用。
如果我尝试转义美元符号,我只能得到命令的一部分,ll
现在是ls -la | awk $5
我应该怎么做才能按照我想要的方式定义此别名?
答案1
如果您的别名比简单命令更复杂,则只需使用 shell 函数:
lz () {
ls -la | awk '$5 > 2'
}
...或者找到一个更简单并且适合作为别名的命令:
alias lz='find . -maxdepth 1 -size +2c -ls'
手册bash
包含以下声明
对于几乎所有用途,别名都被 shell 函数取代。
有关的:为什么*不*解析`ls`?
答案2
逃避,平等
$ alias ll="ls -la | awk '\$5 > 2'"
$ alias|grep ll
ll='ls -la | awk '\''$5 > 2'\'