Когда шаблон используется для расширения имени файла, символ '.' В начале имени файла или сразу после косой черты должен быть соответствует явному совпадению, если не задана опция оболочки dotglob.
Это просто означает, что глобусы *
, ?
и [...]
не соответствуют .
в начале имени файла. Если вы хотите сопоставить .
в начале имени файла, вы не можете использовать глобус, вы должны ввести .
явно. Например:
$ echo ????
Work
$ echo .???
.gem .pki .ssh .vim
И чтобы ответить на ваш другой вопрос:
Как, в частности, поместить
b
в скобки после.
сделать это "явным" совпадением в примере~ /. [B] ashrc
?
Тот факт, что вы используете шаблон glob, не означает, что весь шаблон больше не является «явным». В ~ /. [B] ashrc
, например, все символы /. Ashrc
явно сопоставляются. Однако [b]
является шаблоном glob, а также не является явным совпадением. (Технически ~
- это расширение тильды и выполняется раньше, чем расширение glob, поэтому это также явное совпадение.) Но другие символы, включая .
, действительно соответствуют , поэтому ~ /. [B] ashrc
соответствует ~ / .bashrc
.
Для сравнения, ~ /? [B] ashrc
не будет не соответствовать ~ / .bashrc
, потому что .
больше не сопоставляется явно.