현재 디렉터리와 모든 하위 디렉터리의 파일과 일치하는 glob을 만드는 것이 가능합니까?
문제
이 디렉터리 구조의 경우:
.
|-- 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
해결책
질문의 실제 요점을 놓친 경우 사과드립니다. 그러나 sh/bash/etc.를 사용하고 있다면 아마도 다음을 사용할 것입니다. 찾다 일을 하기 위해:
find . -name '*.rb' -type f
Globs는 스크립트 내에서 사용될 때 약간 불쾌해질 수 있습니다. 찾다 훨씬 더 유연합니다.
다른 팁
zsh에서는, **/*.rb
공장
Ruby 자체에서는:
Dir.glob('**/*.rb') perhaps?
부터는 할 수 없을 것 같습니다 bash
당신이 사용하는 경우 zsh
그 다음에
ls **/*.rb
올바른 결과가 나올 것입니다.
그렇지 않으면 당신은 납치할 수 있습니다 ruby
통역사 (아마도 다른 언어의 통역사)
ruby -e "puts Dir.glob('**/*.rb')"
답변을 주신 Chris와 Gaius에게 감사드립니다.
제휴하지 않습니다 StackOverflow