这是命令(及其输出)的记录,解释了我的问题:
/tmp/example $ shopt -s
cdspell on
checkwinsize on
cmdhist on
complete_fullquote on
direxpand on
dirspell on
expand_aliases on
extglob on
extquote on
failglob on
force_fignore on
globstar on
histappend on
interactive_comments on
login_shell on
nocaseglob on
nullglob on
progcomp on
promptvars on
sourcepath on
/tmp/example $ ls -R
.:
prefix_bar prefix_foo
./prefix_bar:
test.c
./prefix_foo:
baz test.c
./prefix_foo/baz:
test.c
/tmp/example $ ls prefix_@(foo/baz|bar)/test.c
prefix_bar/test.c
/tmp/example $ ls @(prefix_foo/baz|prefix_bar)/test.c
prefix_bar/test.c
问题:为什么 bash 忽略模式列表的foo/baz
或部分?pattern_foo/baz
作为记录,我在发布这个问题之前环顾四周,最接近我要问的问题是bash extglob:模式列表中模式的顺序是否重要?(它没有回答我的问题)。