0

.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 '^\.'のファイルが正常に一覧表示されます。非常に奇妙な。

なぜこれが起こっているのかを理解しようとしていますが、空白を描いています。何か案は?ありがとう!

4

1 に答える 1

1

次のコマンドを試すと、いくつかの理由が表示されます。

ls --color | cat -v

ls='ls --color=auto'の代わりにエイリアスを使用する必要がありls='ls --color'ます。

于 2012-04-18T21:02:52.053 に答える