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,所以这同时解决了两个问题。