On Sat, Apr 05, 2003 at 03:02:40PM +0900, Peter B. Ensch wrote:
> Find#find automatically follows symbolic links to real files but
> not to directories. How can I perform a recursive traversal of 
> a directory tree including sym.links to directories?

The Unix command-line find has a '-follow' option.

Under Ruby you could try something nefarious like:

  require 'find'
  dirs = ["."]
  dirs.each do |dir|
    Find.find(dir) do |f|
      dirs.push File.readlink(f) if FileTest.symlink?(f) and FileTest.directory?(f)
      puts f
    end
  end

I'm never particularly happy about modifying an array whilst iterating
through it :-)

The above code almost certanily won't work for relative symbolic links, e.g.
e.g.   foo/bar/src -> ../baz/src

It would be nice if Find had a 'follow' method, like 'prune', which did the
Right Thing[TM]

Regards,

Brian.