ls -d *e* どこかに「e」を含むすべてのファイルを出力します。ただし、その逆で、ls -d *[!e]* 動作しないようです。なぜそれが正確なのですか?
lsだからです *を取ります 独自の引数として、すべてのファイルを展開しますか?
できることを理解しています:ls -d !(*e*) (Bashでextglobを使用 セット、またはkshで)。
承認された回答:
そのglobが実際に行っているのは、任意の数の文字、次にe以外の単一の文字、次に任意の数の文字を照合することです。完全にeで構成されていない名前のファイルと一致します。