Используйте библиотеку поиска файлов Даниэля Дж. Бергера. Это доступно как рубиновый драгоценный камень. Тогда вы можете найти рекурсивно с:
require 'rubygems'
require 'file/find'
File::Find.new(:follow => false).find { |p| puts p }
Примечание: вопреки документации и интуиции, установка: follow => false фактически заставит File :: Find следовать всем символическим ссылкам, по крайней мере на моем компьютере (Ubuntu 10.04, Ruby 1.8.7, file-find 0.3.4) .
Для File :: Find доступно множество других опций, таких как шаблон имени, тип файла, atime, ctime, mtime и т. Д. Посмотрите на RDoc.