ls.bash_aliases中的别名干扰egrep输出

时间:2012-04-18 20:58:58

标签: linux aliases

我的.bash_aliases文件中有以下几行:

# Prettify and streamline listings
alias ls='ls --color'
alias ll='ls -l'
alias la='ls -a'
alias lla='ls -al'
alias lF='ls -F'
alias laF='ls -laF'
alias llF='ls -lF'
alias llaF='ls -alF'

别名工作正常,但在管道到egrep寻找不可见的文件时遇到了麻烦。例如,如果我想列出目录中的所有不可见文件,并输入la | egrep '^\.',则不会输出。即使我跳过别名并输入ls -a | egrep '^\.',我仍然没有输出。如果我遗漏了插入符号,它就可以了,但当然在这种情况下egrep列出了文件名中包含句点的所有文件,而不仅仅是以句点开头的文件。

但是,如果我重命名.bash_aliases文件并再次登录,以便这些别名不活动,那么ls -a | egrep '^\.'可以很好地列出不可见文件。很奇怪。

我试图弄清楚为什么会发生这种情况,我正在画一个空白。有任何想法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

尝试以下命令,您会看到一些原因:

ls --color | cat -v

您应该使用别名ls='ls --color=auto'代替ls='ls --color'