Renaming documents is one of the most common tasks you regularly want to carry out on a Linux system. You can rename documents by use of a GUI document manager or through the command-line terminal.
Renaming a single document is not hard however renaming more than one document at once may be a challenge, especially for customers who’re new to Linux.
In this tutorial, we will display you the way to use the mv and rename instructions to rename documents and directories.
- How to Rename Directories in Linux
- How To Rename a Directory on Linux
- How to Move Files and Directories in Linux with mv Command
Renaming Files with the mv Command
The mv command (short of circulate) is used to rename or circulate documents from one region to another.
Syntax used for the mv command is as follows:
mv [OPTIONS] source destination
Copy
The source may be one or more documents, or directories and destination may be a single document or directory.
If you specify more than one document as source, the destination should be a directory. In such cases, the source documents are transferred to the targeted directory.
If you specify a single document as source, and the destination target is a current directory, then the document is moved to the required directory.
To rename a document, you want to specify a single document as a source and a single document as a destination target.
For instance, to rename the document file1.txt as file2.txt you’ll run:
mv file1.txt file2.txt
Renaming more than one documents with the mv Command
The mv command can rename only one command at a time effectively , however it may be used together with different commands which include find or inside bash for or while loops to rename more than one document.
The following instance indicates the way to use the Bash for loop to rename all .html documents in the present directory by converting the .html extension to .php.
for f in *.html; do mv -- "$f" "$f%.html">.php" done
Copy
Let’s examine the code line by line:
The first line creates a for loop and iterates through a listing of all documents edging with .html.
The 2d line applies to every object of the listing and moves the document to a new one replacing .html with .php.
The element ${document%.html} is by use of the shell parameter expansion to get rid of the .html element from the filename.
done suggests the end of the loop segment.
Here is an example by use of mv in combination with find to gain similar above:
find . -depth -name "*.html" -exec sh -c 'f=""; mv -- "$f" "$.php"' ; " xss="removed">Copy
The find command is passing all documents ending with .html in the present directory to mv one at a time using the -exec option. The string is the name of the document presently being processed.
As you could see from the examples above, renaming more than one document using the mv command isn’t an easy project because it requires a great amount of Bash scripting.
Renaming Files with the rename Command
The rename command is used to rename more than one document. This command is extra advanced than mv because it requires a few fundamental understanding of regular expressions. There are variations of the rename command with unique syntax.
Here in this tutorial, we are going to use the Perl version of the rename command. If you don’t have this version set up on your system, you could effortlessly install it by using the package manager of your distribution.
Install rename on Ubuntu and Debian
sudo apt install rename
Install rename on CentOS and Fedora
sudo yum install prename
Install rename on Arch Linux
yay perl-rename ## or yaourt -S perl-rename
The syntax for the rename command is as follows:
rename [OPTIONS] perlexpr documents
Copy
The rename command will rename the documents in step with the required perlexpr regular expression. You can study more about perl regular expressions here .
The following instance will change all documents with the extension .html to .php:
rename 's/.html/.php/' *.html
You can use the -n choice to print names of documents to be renamed, without renaming them.
rename -n 's/.html/.php/' *.html
The output will look something like this:
rename(file-90.html, file-90.php) rename(file-91.html, file-91.php) rename(file-92.html, file-92.php) rename(file-93.html, file-93.php) rename(file-94.html, file-94.php)
By default, the rename command doesn’t overwrite present documents. Pass the -f choice to permit present documents to be overwritten:
rename -f 's/.html/.php/' *.html
Below are some more common examples of how to use the rename command:
Replace areas in filenames with underscores
rename 'y/ /_/' *
Convert filenames to lowercase
rename 'y/A-Z/a-z/' *
Convert filenames to uppercase
rename 'y/a-z/A-Z/' *
Conclusion
Here we have shown you the way to use the mv and rename instructions to rename documents.
There also are different instructions to rename documents in Linux, which include mmv. New Linux customers who’re intimidated by the command line can use GUI batch rename equipment which include the Métamorphose .
If you’ve got any questions or feedback, Just feel free to leave a comment.