LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie
User Name
Password
Linux - Newbie This Linux forum is for members that are new to Linux.
Just starting out and have a question? If it is not in the man pages or the how-to's this is the place!

Notices


Reply
  Search this Thread
Old 12-20-2007, 05:44 PM   #1
bookman761
LQ Newbie
 
Registered: Apr 2007
Posts: 3

Rep: Reputation: 0
Need help in renameing files in terminal


Hi,

I have a collection of mp3 files that I would like to rename. I want to simply add a prefis to my files such as;

hotel california.mp3 >>>>> eagles-hotel california.mp3

Do you knoe the rename command and its options to do this in the terminal?

Thanks,
FG
 
Old 12-20-2007, 05:49 PM   #2
pwc101
Senior Member
 
Registered: Oct 2005
Location: UK
Distribution: Slackware
Posts: 1,847

Rep: Reputation: 128Reputation: 128
Code:
mv hotel\ california.mp3 eagles-hotel\ california.mp3
You need to escape the spaces with a backslash. Otherwise, you could do this:
Code:
mv "hotel california.mp3" "eagles-hotel california.mp3"
 
Old 12-20-2007, 05:51 PM   #3
bookman761
LQ Newbie
 
Registered: Apr 2007
Posts: 3

Original Poster
Rep: Reputation: 0
How do i do this to multiple files at once.

Do I simply do:


mv *.mp3 eagles-*.mp3

Thanks,

FG
 
Old 12-20-2007, 06:14 PM   #4
lleb
Senior Member
 
Registered: Dec 2005
Location: Florida
Distribution: CentOS/Fedora
Posts: 2,630

Rep: Reputation: 495Reputation: 495Reputation: 495Reputation: 495Reputation: 495
there is a way, but i forget it has to do with building a string $ and changing things.
 
Old 12-20-2007, 06:18 PM   #5
gilead
Senior Member
 
Registered: Dec 2005
Location: Brisbane, Australia
Distribution: Slackware64 14.0
Posts: 4,125

Rep: Reputation: 164Reputation: 164
Do you have the rename command in your distro? From the man page:
Code:
rename  will  rename  the specified files by replacing the first 
occurrence of from in their name by to.

For example, given the files foo1, ..., foo9, foo10, ..., foo278, the commands

              rename foo foo0 foo?
              rename foo foo0 foo??

will turn them into foo001, ..., foo009, foo010, ..., foo278.

And
              rename .htm .html *.htm

will fix the extension of your html files.
 
Old 12-20-2007, 06:24 PM   #6
chrism01
LQ Guru
 
Registered: Aug 2004
Location: Sydney
Distribution: Centos 6.8, Centos 5.10
Posts: 17,241

Rep: Reputation: 2325Reputation: 2325Reputation: 2325Reputation: 2325Reputation: 2325Reputation: 2325Reputation: 2325Reputation: 2325Reputation: 2325Reputation: 2325Reputation: 2325
FYI, most Unix tools don't like spaces in filenames, so you have to either explicitly escape them or use quotes as mentioned above.
In short, don't put spaces in filenames if you can avoid it.
 
Old 12-20-2007, 09:16 PM   #7
dasy2k1
Member
 
Registered: Oct 2005
Location: 127.0.0.1
Distribution: Ubuntu 12.04 X86_64
Posts: 958

Rep: Reputation: 35
Quote:
Originally Posted by bookman761 View Post
How do i do this to multiple files at once.

Do I simply do:


mv *.mp3 eagles-*.mp3

Thanks,

FG
should work.

though the spaces may cause problems
 
Old 12-21-2007, 01:35 AM   #8
gilead
Senior Member
 
Registered: Dec 2005
Location: Brisbane, Australia
Distribution: Slackware64 14.0
Posts: 4,125

Rep: Reputation: 164Reputation: 164
Quote:
Originally Posted by dasy2k1 View Post
Code:
mv *.mp3 eagles-*.mp3
should work.

though the spaces may cause problems
No, that doesn't work here. The shell tried to expand each '*' before passing it to the mv command. The eagles-*.mp3 couldn't be expanded, was passed to mv as the destination directory and caused an error of:
Code:
mv: target `eagles-*.mp3' is not a directory

Last edited by gilead; 12-21-2007 at 01:37 AM.
 
Old 12-21-2007, 06:01 AM   #9
pwc101
Senior Member
 
Registered: Oct 2005
Location: UK
Distribution: Slackware
Posts: 1,847

Rep: Reputation: 128Reputation: 128
Quote:
Originally Posted by bookman761 View Post
How do i do this to multiple files at once.

Do I simply do:


mv *.mp3 eagles-*.mp3

Thanks,

FG
This should do it:
Code:
for i in *.mp3; do mv "$i" eagles-"$i"; done

Last edited by pwc101; 12-21-2007 at 06:02 AM.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
batch renameing. files without a ext. almost000 Linux - Newbie 9 06-05-2007 05:37 AM
renameing directories?? acidblue Slackware 2 02-02-2006 07:42 PM
How to find files in terminal? pablowablo Linux - Newbie 1 08-03-2004 06:13 AM
sound files in Terminal terry_truitt Red Hat 4 09-01-2003 11:57 PM


All times are GMT -5. The time now is 12:06 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration