Re: Bash Help: Renaming all files in a Directory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Steven W. Orr wrote:
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.


You beat me to the perl script.

I have been using a form of this script for years. I put it in my personal bin directory and it is so powerful.

The only caution is it will overwrite files that already exist so you have to be careful.


--
Robin Laing


[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux