You are on page 1of 5

[Bash Tips] Rename Files Without Typing Full Name Twice

In Linux
ostechnix.com/bash-tips-rename-files-without-typing-full-name-twice-in-linux

sk April 21,
2020

This brief guide explains how to rename files without typing full name twice in Linux
operating systems. As we all already know, we use mv command to rename files in
Linux. To rename a file, the command would be:

$ mv <old_file_name> <new_file_name>

Let me show you an example.

$ touch ostechnix1.txt

$ mv ostechnix1.txt ostechnix2.txt

This is how we rename files using mv command in Linux. The above command will
rename the file named “ostechnix1.txt” to “ostechnix2.txt”. As you see, we type the file
names two times in the above command. However, it is not necessary. We can easily
rename files in Linux using mv command without having to type the file names two
times, with the help of a simple BASH function.

How To Rename Files Without Typing Full Name Twice In


Linux

1/5
Edit your ~/.bashrc file with your favorite editor:

$ nano ~/.bashrc

Add the following lines at the end:

# Bash Function To Rename Files Without Typing Full Name Twice


function mv() {
if [ "$#" -ne 1 ] || [ ! -e "$1" ]; then
command mv "$@"
return
fi

read -ei "$1" newfilename


command mv -v -- "$1" "$newfilename"
}

Here, the bash function name is mv. You can choose any other different name of your
liking. Save and close the file. And then run the following command to take effect the
changes:

$ source ~/.bashrc

From now on, you can only specify the original file name and rename the file as shown
below.

$ mv ostechnix1.txt

This will display the file name in the Terminal. Edit the file name and hit ENTER key to
rename it. Have a look at the following visual demo.

2/5
As you see in the above output, I have renamed the file ostechnix1.txt to ostechnix2.doc.
Quite handy, right?

Use to arrow keys to move thorough the letters or hit the backspace key to remove all
letters and type a new name for the file. Not just file name, you can rename the file
extension as well. This is literally like hitting the F2 key and rename the file in GUI.

Other ways To Rename Files Without Typing Full Name Twice


There are also a few other ways to rename a file without having to type full name two
times.

Method 1 – using mv command


Apart from the BASH function method, here is another wimple way rename files with mv
command. We don’t even need a BASH function. Use the following one-liner command to
quickly rename the file:

$ mv ostechnix{1,2}.txt

The above command would copy the file named ostechnix1.txt to ostechnix2.txt.

Here is another example. The following command will rename


“IMG_20140210_150415974.jpg to “IMG_20140210_ostechnix.jpg”.

$ mv IMG_20140210_{150415974,ostechnix}.jpg

If you don’t want to rename, but want to have two copies of the same file, use cp
command like below:

3/5
$ cp ostechnix{1,2}.txt

The above command will copy the contents of ostechnix1.txt to ostechnix2.txt. You
should have now two files with same contents.

Method 2 – Using readline keybindings (CTRL+w, CTRL+y and CTRL+y)


We can use readline keybindings to quickly rename a file. These keybindings comes with
mainstream shells by default. The CTRL+w command will cut the last word from a
command and the CTRL+y key will paste that word in Terminal.

As you see in the above output,

First, I type “mv ostechnix1.txt”.


Secondly, I press CTRL+y to cut the last word i.e. ostechnix1.txt.
Thirdly, I press CTRL+y to paste the last word.
Finally, I press CTRL+y once again to paste the same word and then rename it.

Method 3 – Using “imv” from renameutils


The renameutils is a set of programs that is designed to batch renaming files and
directories faster and easier. Renameutils consists of an utility called “imv” among
others. It allows you to interactively rename the file name.

To rename a file, do:

$ imv ostechnix1.txt

This will display the above filename in the Terminal. Edit the filename as you like and hit
ENTER to rename it. To learn about other renaming methods, refer the following guide.
4/5
How To Rename Multiple Files At Once In Linux

5/5

You might also like