以下を見てください。
$ echo .[].aliases[]
..
$ echo .[].foo[]
..
$ echo .[].[]
..
$ echo .[].xyz[]
..
$ echo .xyz[].xyz[]
.xyz[].xyz[]
$ echo .xyz[].[]
.xyz[].[]
どうやらこれは何かをぼかしているようですが、結果がどのように組み合わされるのかわかりません。私の理解から、[]
は空の文字クラスです。次の場合は直感的です
..aliases
(最初の例)のようなものにも一致するので、bashは完全に再現されると思います。これは、GNU bash、バージョン4.4.23(1)-releaseの場合です。
[
はセットを開始します。セットは]
で終了します。ただし、]
をセットの一部として使用する方法があります。これは、]
を最初の文字として指定することです。空のセットは意味をなさないので、これはあいまいではありません。
したがって、例は基本的にすべてドットであり、その後にドットを含むセットが続くため、2つのドットに一致します。
後の例ではファイルが見つからないため、そのまま返されます。