我一直在寻找将alas clear和ls组合成一个命令的方法。 目前我已经定义了命令x:
alias x="clear;ls"
现在有任何解决方法可以避免递归并定义:
alias ls='clear;ls'
答案 0 :(得分:24)
如果在命令名前添加反斜杠,则会禁用任何别名。
alias ls='clear;\ls'
或者,就像Arnaud说的那样,只需使用ls的完整路径。
答案 1 :(得分:15)
另一种方法是
alias ls='clear; command ls'
这与/usr/bin/ls
不同,因为它仍在ls
中搜索$PATH
,但会忽略shell函数或别名。
答案 2 :(得分:1)
只是做:
alias ls='clear;/usr/bin/ls'
输入时:
$ ls
首先,它将搜索用户定义的函数,它将启动它,否则搜索$ PATH命令。</ p>
通过给出ls
命令的显式路径,将避免递归。
答案 3 :(得分:0)
我总是将ls
与--color=auto
参数(-G Enable colorized output.
)一起使用,并且喜欢使用函数。
clear_and_ls() {
clear
command ls --color=auto
}
alias ls="clear_and_ls"