From: Gabriel Dragffy Date: 2007-09-28T18:04:30+09:00 Subject: Re: Recursing through directories On 27 Sep 2007, at 16:35, Rob Biedenharn wrote: > > If you want to rename files having names that meet some pattern, > why don't you start with print the names like this (files having > "foo" somewhere in their name): > > Dir['**/*'].each {|f| puts f if f =~ /foo/ } > > but beware that Dir['**/*'] is going to plow through the directory > structure and make an array (a big one) of all the file names > before the block gets to see any of those names. > > Perhaps you'd get some better answers if you post what you're > trying to accomplish, the attempt you've made (or what you think > should work), and the actual results you see. > > Also, note that my example starts from the current directory (which > was ~/ in my case). It's always better to get a script like yours > working on a small bit of known data (and perhaps be non- > destructive) before turning it loose on your entire disk. (In my > case, it found many files that were throwaway "foo" files, but also > many with "foot", "footnote", "food", and "footer" that were > clearly not throwaway files.) Hi Rob Thanks for your help. What I am trying to achieve is replace the slashes (/) in file/ directory names under a certain directory. So, for example, I want to recursively rename offending files that are under /Volumes, but I don't want them moved from their current directory... just renamed. What's the best way to go about that? Regards Gabe