通配符
星号 (*) – 匹配一个或多个出现的任意字符,包括无字符。
谁能解释一下这个“不包括字符”是什么意思?
答案1
Bash 手册的措辞有点不同(只是为了选择一些来源):
*
匹配任何字符串,包括空字符串
“空字符串”是零长度字符串,因此含义是*
匹配任意数量的任意字符,甚至根本没有。或者,零个或多个任意字符。
foo*bar
匹配例如
foo1bar
(其中*
匹配一个字符)foo22bar
(两个字符)- 但也只是
foobar
,其中 匹配和*
之间的零长度字符串。foo
bar
ETC。
(此外,*.txt
也会匹配 filename ,但以点开头的文件名是一种特殊情况,除非在模式中明确给出点,或者设置了.txt
类似 Bash 的内容,否则不会匹配。)dotglob
如果你想要求至少一个字符,你可以使用?*
since ?
require 并完全匹配一个字符。