Unix全局模式中dir/***和dir/*/*之间的区别?

Unix全局模式中dir/***和dir/*/*之间的区别?,unix,glob,Unix,Glob,当我echoed它时,输出似乎是相同的 我还测试了其他命令,如open,但两者的结果相同。在传统的sh样式模式匹配中,*匹配文件名中的零个或多个字符,因此*、***和***之间没有区别,要么是单独的,要么是作为更大模式的一部分 然而,有一些全局语法赋予**不同的含义。例如,由Z shell实现的模式匹配将x/**/y扩展到以x/开头并以/y结尾的所有文件名,而不管其间有多少个目录,从而匹配所有x/y,x/subdir/y,x/subdir/subdir/y,等等。此语法在后面,虽然只有在用户设置

当我
echo
ed它时,输出似乎是相同的


我还测试了其他命令,如
open
,但两者的结果相同。

在传统的
sh
样式模式匹配中,
*
匹配文件名中的零个或多个字符,因此
*
***
***
之间没有区别,要么是单独的,要么是作为更大模式的一部分


然而,有一些全局语法赋予
**
不同的含义。例如,由Z shell实现的模式匹配将
x/**/y
扩展到以
x/
开头并以
/y
结尾的所有文件名,而不管其间有多少个目录,从而匹配所有
x/y
x/subdir/y
x/subdir/subdir/y
,等等。此语法在后面,虽然只有在用户设置了
globstar
配置选项时才启用。

@perreal不正确,请参阅发布的答案。谢谢!我也没有激活globstar,所以这同时解决了两个问题。