Using FIND to globally rename files...

Robert Nichols rnicholsNOSPAM at comcast.net
Fri Jun 20 17:06:32 UTC 2008


Daniel B. Thurman wrote:
> 
> How do you use FIND to globally rename files?
> 
> I find that some music files that have '!' embedded in them
> to cause conflicts especially when attempting to use
> Nautilus to move them from one location into another,
> so I wish to rename files that have offending characters
> in them.
> 
> I tried:
> 
> 1) find . -type f -name \*.mp3 -exec mv "{}" `echo \"{}\" | sed -e 
> 's/[!]//`" \;
>    Nope.  Does not work.
> 
> 2) find . -type f -name \*.mp3 | xargs "echo "mv \"{}\" `echo \"{}\" | 
> sed -e 's/\!//`""
>    Ah, this is really convoluted, of course it does not work. It is rife 
> with errors indeed!
>    :)

Yes, the second has serious problems with nesting of quotes.  Simplest
way is to use the 'rename' command:

    find . -type f -name '*!*.mp3' -exec rename '!'  ''  {} \;

-- 
Bob Nichols     "NOSPAM" is really part of my email address.
                 Do NOT delete it.




More information about the fedora-list mailing list