Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

Rubyでディレクトリ検索したいなら標準添付のFindライブラリを使った方が幸せになれるかもしれない。

FindライブラリはRubyに標準装備されている検索用コマンドです。
`find ...`とかやらなくとも良いのです。
その上、標準添付なのでプラットフォームの差分を吸収してくれるのが良いです。

記法はfind(1)に則るので、フツーに使えます。

$ ruby -rfind -e 'Find.find("/tmp/") {|f| p f}'
"/tmp/"
"/tmp/hoge"
"/tmp/hoge/fuga"
...

なお、ホームディレクトリを示す「~」は使えないので注意してください。*1

$ ruby -rfind -e 'Find.find("~/") {|f| p f}'
/Users/shuzo/.anyenv/envs/rbenv/versions/2.0.0-p195/lib/ruby/2.0.0/find.rb:40:in `block in find': No such file or directory 

*1:SHELLの環境変数依存だからですかね?