Gabriel Dragffy
9/28/2007 9:05:00 AM
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