私は bash シェルで次の glob を試しています:
$ ls -d .*
. .. .a .ab
$ ls .a*
.a .ab
$ ls .[!.]*
.a .ab
$ ls .[!.]?*
.ab
最後の式は、「ドットの後にドット以外の文字が 1 つ続き、その後に 0 個以上の文字が続く」という意味ではないでしょうか。なぜ一致しないのでしょうか.a
。
答え1
あなたは間違っています。これは、「ドットの後にドット以外の文字が 1 つ続き、その後に 1 つの文字が続き、その後に 0 個以上の文字が続く」という意味です。.a
それに一致する文字数が足りません。
でも、本当に、 を設定するだけですdotglob
。