Linux别名链命令(可以避免递归?)

时间:2011-10-10 16:38:26

标签: linux bash shell alias

我一直在寻找将alas clear和ls组合成一个命令的方法。 目前我已经定义了命令x:

alias x="clear;ls"

现在有任何解决方法可以避免递归并定义:

 alias ls='clear;ls'

4 个答案:

答案 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"