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

module function Find.#find

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

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

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

ブロックを省略した場合は、上記の処理を行うような Enumerator を返 します。

[PARAM] dirs:
探索するディレクトリを一つ以上指定します。

例:

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