bashでワイルドカードを試し、「xyz」で始まり「.TXT」で終わらないすべてのファイルを一覧表示しようとしましたが、誤った結果が得られました。
これが私が試したコマンドです:
$ ls -l xyz*[!\.TXT]
ディレクトリにある「xyz」および「xyzTXT」という名前のファイルは一覧表示されません。ただし、「xyz1」、「xyz123」が表示されます。
「xyz*」の後に追加すると[!\.TXT]
、シェルは「xyz」で始まり、その後に少なくとも1つの文字があるものを検索するようになります。
なぜそれが起こっているのか、そしてこのコマンドを修正する方法について何か考えはありますか?他のコマンドを使用して実行できることはわかっていますが、失敗する理由と、ワイルドカードを使用するだけで実行できるかどうかを知ることに特に関心があります。