Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > findライブラリ > Findモジュール > find

module function Find.#find

find(*dirs, ignore_error: true) -> Enumerator[permalink][rdoc]
find(*dirs, ignore_error: true) {|file| ... } -> nil

find(1) のように dir 配下のすべてのファイルやディレクトリを一つずつ引数 file に渡してブロックを実行します。

ディレクトリのシンボリックリンクは辿りません。また file に渡される順序は不定です。

ブロックを省略した場合は Enumerator を返します。

[PARAM] dirs:
探索するディレクトリを一つ以上指定します。
[PARAM] ignore_error:
探索中に発生した例外を無視するかどうかを指定します。

例:

require 'find'

Find.find('/tmp') {|f|
  Find.prune if f == "/tmp/bar"
  ...
}

あるディレクトリ配下の探索を省略したい場合は上記のように、 Find.#prune を使用します。この例では "/tmp/bar" 配下のファイルやディレクトリを探索しません。prune の代わりに 制御構造/next を使用した場合、"/tmp/bar" 自体をスキップするだけで、その配下の探索は続行されます。

[SEE_ALSO] find(1), Find.#prune