Thursday, May 17, 2012

How To: Rename A File In Bash

How do I rename a file in bash under UNIX / OS X / Linux / BSD operating systems?

The mv command rename SOURCE file to DESTINATION file using the following syntax:
mv oldname newname
mv source dest
mv olddir newdi

Task: Rename A File Called /tmp/foo To /tmp/bar

Type the following command (open terminal and issue the following commands):
# create /tmp/foo
touch /tmp/foo
ls -l /tmp/foo
mv /tmp/foo /tmp/bar
ls -l /tmp/bar
ls -l /tmp/foo

Task: Rename A Directory Called offfer To offers

Type the following command:
mv offfer offers

Task: Prompt Before Overwrite

The -i option is interactively file processing option. You get an error message before moving a file that would overwrite an existing file. If the response from the user begins with the character y or Y, the move / rename is attempted.
touch /tmp/test
mv -i /tmp/test /tmp/ba
Sample outputs:
mv: overwrite `/tmp/bar'? y

The -u Option

The -u option move only when the SOURCE file is newer than the destination file or when the destination file is missing:
mv -u data.txt /mnt/floppy/backup.txt

The -v Option

The -v option explain what is being done:
mv -v /tmp/bar /tmp/output.txt
Sample outputs:
`/tmp/bar' -> `/tmp/output.txt'

Task: Rename multiple files

Use rename command renames multiple files. For example rename all *.perl file as *.pl, enter:
 
rename .perl .pl *.perl
 

No comments:

Post a Comment