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
This doesn't make sense. There aren't slashes in the name, those
are separating directories along the path to the file.
/Volumes/Macintosh HD/Users/rab/code/ruby/quiz/081-Hash to
OpenStruct/another.yml
/Volumes/Macintosh HD/Users/rab/code/ruby/quiz/081-Hash to
OpenStruct/hash2ostruct.rb
/Volumes/Macintosh HD/Users/rab/code/ruby/quiz/081-Hash to
OpenStruct/openstruct.yml
/Volumes/Macintosh HD/Users/rab/code/ruby/quiz/081-Hash to
OpenStruct/recursive.yml
These files have some directories containing spaces in the name,
but the name of each file is just the last part (another.yml,
hash2ostruct.rb, openstruct.yml, recursive.yml). If I go to my
home directory and rename 'code' to be 'source', I haven't changed
the names of the files, but I *have* changed the path needed to
reach them.
If you really *do* have files with '/' in their names, chances are
you need to use a low-level utility to recover from that mess. If
you're just seeing in the Mac OS X Finder that there are "slashes"
in the name of a file, perhaps you're seeing an artifact of the
Mac's filesystem. If you open a Terminal, you'll see that there
the file has a ':' in the place that Finder shows you '/'.
Perhaps you can find these files (like I said, see if you find
them properly before to operate on them) with Ruby like this:
ruby -e 'puts Dir["**/*:*"]'
But know that there are a great many files that *NEED* to contain
':' created by iChat, AddressBook, Safari, and others. (You might
not want to mess with anything under a Library directory ;-)