是否可以设计一个与当前目录和所有子目录中的文件匹配的glob?
时间:2020-03-05 18:47:49 来源:igfitidea点击:
对于此目录结构:
. |-- README.txt |-- firstlevel.rb `-- lib |-- models | |-- foo | | `-- fourthlevel.rb | `-- thirdlevel.rb `-- secondlevel.rb 3 directories, 5 files
全局匹配:
firstlevel.rb lib/secondlevel.rb lib/models/thirdlevel.rb lib/models/foo/fourthlevel.rb
解决方案
回答
在Ruby本身中:
Dir.glob('**/*.rb') perhaps?
回答
在zsh中,** / *。rb
有效
回答
看起来无法通过bash
完成
如果我们使用zsh
,那么
ls **/*.rb
将产生正确的结果。
否则,我们可以劫持ruby
解释器(可能还有其他语言的解释器)
ruby -e "puts Dir.glob('**/*.rb')"
感谢克里斯和盖乌斯的回答。
回答
抱歉,如果我错过了问题的实质,但是,如果我使用的是sh / bash / etc,那么我可能会使用find来完成这项工作:
find . -name '*.rb' -type f
在脚本中使用Glob时可能会有点讨厌,并且查找更加灵活。