Bash Help: Renaming all files in a Directory
Steven W. Orr
steveo at syslang.net
Sat Jul 22 02:10:07 UTC 2006
On Friday, Jul 21st 2006 at 19:27 -0400, quoth Thom Paine:
=>I'm making a digital picture frame out of an old laptop and the pic
=>viewer doesn't support filenames with spaces in them.
=>
=>Is there a quick command I can type to process all files in a
=>directory that will rename the files from "Family Pic 001.jpg" to
=>"FamilyPic001.jpg"?
You've gotten a lot of bash suggestions, ranging from the sublime to the
absurd. Here's my fave:
514 > cat ~/bin/rename
#!/usr/bin/perl
$op = shift;
for (@ARGV) {
$was = $_;
eval $op;
die $@ if $@;
rename($was,$_) unless $was eq $_;
}
515 >
Since it uses perl, you can do regex magic plus more. Your problem would
be solved with
rename 's/ //g' *.jpg
but you can also play games like
rename 'tr/A-Z/a-z/' *.jpg to flip things to lowercase.
Enjoy.
--
Time flies like the wind. Fruit flies like a banana. Stranger things have .0.
happened but none stranger than this. Does your driver's license say Organ ..0
Donor?Black holes are where God divided by zero. Listen to me! We are all- 000
individuals! What if this weren't a hypothetical question?
steveo at syslang.net
More information about the fedora-list
mailing list