Ubuntu

How Do I Rename a File in the Ubuntu Terminal?

Renaming an existing file is a basic operation that usually does not require a specialized tool in any operating system. Renaming a single file in Linux is quite a simple task but renaming more than one or multiple files via terminal is a more challenging job for new Linux users. In all Linux distributions, the terminal is an essential command-line application for administering the Linux systems.

However, to use effectively this CLI application, you should have strong knowledge about basic Linux commands and fundamentals such as create, delete and renaming an existing file. Different commands are available in the Ubuntu Linux system to rename a file that we will explore in this article.

We will provide comprehensive details in this tutorial on how you can rename a file in Ubuntu using the command-line application Terminal. All commands have implemented for the demonstration on the Ubuntu 20.04 Linux system.

Renaming Files in Ubuntu 20.04 LTS System Using Terminal

The two different commands ‘mv’ and ‘rename’ are available in the Ubuntu Linux system to rename a file via terminal or command-line approach. Let us discuss each command in detail.

Rename File in Ubuntu Using the mv Command

Before using the ‘mv’ command, you should know how it works on your system. The basic syntax of the ‘mv’ command is given below:

mv [options] [file-source] [Destination]

The most popular ‘mv’ command options are provided below:
-f – Displays no message or alerts before overwriting a file name.
-i – Displays prompt confirmation or warning messages before renaming a file.
-u – It moves a file if the file does not exist on the specified destination or in case of a new file.

The file source can be the destination of one or more files. The destination only represents a single file.

Example

For example, to rename the file ‘testfile1.txt’ to ‘testfile2.txt, you need to run the following command:

$ mv testfile1.txt testfile2.txt

How to Use the mv Command to Rename Multiple Files?

Usually, you can only rename a single file using the move command. To rename multiple files using the mv command, you can use the mv command to combine with different commands. Let us say, mv command can be used along with for loop, while loop, and find command.

Let us explain with the help of an example. Here, we want to rename all .txt extension files of the current directory replaced with another .html extension. In this case, the following code will help us:

for f in *.txt; do
    mv -- "$f" "${f%.txt}.html"
done

The above code will iterate using for loop through the files list having the .txt extension. After that, in the second line, it will replace each file extension .txt with .html. In the end, ‘done’ indicated the end of the for loop segment.

How to Use the Rename Command to Rename Files in Ubuntu?

Using the rename command, you can rename multiple files of a current directly at once. This command contains more advance features as compared to the ‘mv’ command. For renaming files using the rename command, you should have basic knowledge about regular expressions usage.

In most Linux distributions, the ‘rename’ command is installed by default. However, if you have not installed the rename command on your Ubuntu system then, it can be easily installed on Ubuntu and its derivatives by running the following command:

$ sudo apt install rename

Syntax of Rename Command

Using the following syntax, you can use the rename command:

rename [OPTIONS] Perlexpressions files

The rename command will rename files according to the specific regular Perl expressions.

Example

In the following example, we want to change the extension of all text files. So, we will change or replace all files with extension .txt to .html by executing the following command:

$ rename 's/.txt/.html/' *.txt

When you use the rename command followed by option ‘-n’, it also displays the file names to be renamed and renaming them as follows:

$ rename -n 's/.html/.txt/' *.html

The above command displays the following result on the terminal window:

By default, the rename command does not overwrite an existing file. However, if you pass option -f along with the rename command then, it will help you to overwrite the existing files. Execute the following command to use the rename command followed by the -f option:

$ rename -f 's/.txt/.html/' *.txt

To change or rename the file name using rename command use the following command:

$ rename 's/old-filename/new-filename/' files

Example

For example, we want to rename a single file with the name ‘testfile.txt’ to newtestfile.txt. In this case, the above command will be modified into the following form:

$ rename ‘s/testfile/newtestfile/’ testfile.txt

To see more usage of rename command, let us try the following examples:

For example, to rename all those files, which contain spaces in file name and you want to replace it with underscores. In this case, the rename command will help you in the following way:

$ rename 'y/ /\_/' \*

Using rename command, you can convert the file name in all lowercase letters as follows:

 $ rename 'y/A-Z/a-z/' \*

Similarly, to convert the file name to all uppercase letters, use the following command:

$ rename 'y/a-z/A-Z/' \*

To explore more options and uses of rename command, type the following terminal command:

$ rename –help

Conclusion

We discussed in this article how to rename files in Ubuntu 20.04 LTS distribution using the terminal application. Moreover, we explored the working and uses of the ‘mv’ and ‘rename’ commands for renaming a file. From the above discussion, we concluded mv command is useful for renaming a file but, rename command offers more advanced options for file renaming in the Ubuntu system.

About the author

Samreena Aslam

Samreena Aslam holds a master’s degree in Software Engineering. Currently, she's working as a Freelancer & Technical writer. She's a Linux enthusiast and has written various articles on Computer programming, different Linux flavors including Ubuntu, Debian, CentOS, and Mint.