Change filenames recursively

Stephen Carville stephen at totalflood.com
Wed Jan 31 21:38:07 UTC 2007


Matthew Anderson wrote:
> I have hundreds of files that start with a * (asterisk) for the
> filename.  I am needing to change the asterisk in every file to a _
> (underscore).  Does
> 
> Anyone know what command I can use to recursively do that?  I appreciate
> any help anyone can provide me.

Check out the 'find' command to locate the files.  Then pipe that that 
thru a bit of Perl to create the commands.

$ ls test
*one  *three  *two

$ find test -name "\**"|perl -e 
'foreach(<>){chomp$_;$aa=$_;$aa=~s/\*/_/;print"mv $_ $aa\n";}

mv test/*two test/_two
mv test/*one test/_one
mv test/*three test/_three

pipe to a shell for execution...


-- 
Stephen Carville <stephen at totalflood.com>
Unix and Network Admin
Nationwide Totalflood
6033 W. Century Blvd
Los Angeles, CA 90045
310-342-3602




More information about the redhat-list mailing list