我的.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 '^\.'
可以很好地列出不可见文件。很奇怪。
我试图弄清楚为什么会发生这种情况,我正在画一个空白。有任何想法吗?谢谢!
答案 0 :(得分:1)
尝试以下命令,您会看到一些原因:
ls --color | cat -v
您应该使用别名ls='ls --color=auto'
代替ls='ls --color'
。