mv command is a UNIX utility for renaming and relocating files and directories in a filesystem. While desktop operating systems also offer a GUI method for file manipulation, there are cases in which using
mv in a terminal can be a more efficient solution.
This article shows you how to use the
mv command in Linux, provides a list of options, and offers illustrative examples.
mv Command Syntax
mv command works with files and directories, yielding different results depending on the used arguments. There are four basic ways to execute an
- Rename a file. Type the source filename and the destination filename:
mv [options] [source-file] [destination-file]
- Rename (or move) a directory. Type the source directory and the destination directory. If a destination directory exists,
mvmoves the source directory to the specified destination.
mv [options] [source-directory] [destination-directory]
- Move a file, preserving the filename. Type the filename followed by the destination directory.
mv [options] [file] [destination-directory]
- Move a file and change its name. Type the filename followed by the destination directory and a new filename.
mv [options] [file1] [directory/file2]
mv Command Options
According to the POSIX standard, the
mv command has only two options:
-f (force remove) and
-i (interactive mode). However, depending on the OS and the version of the
mv command, more useful options are available as arguments.
Below is a list of the most common
|Create a backup of files that will be overwritten or removed.|
|Overwrite destination files without prompting the user.|
|Prompt the user to confirm if the |
|Provide a suffix for a backup file. The default suffix is |
|Perform the |
|Show an output describing the action taken.|
|Output the command help and exit.|
|Show the command version and exit.|
mv Command Examples
As seen above, the
mv command is a simple but versatile file management utility. The sections below provide examples of the most common
Rename the file name1 to name2 with the following command:
mv name1 name2
The command produces no output, but the ls command shows the operation was successful.
View Command Output
Rename the file name1 to name2 and print the output:
mv -v name1 name2
The command produces an output containing the list of the performed actions.
Move Multiple Files
Move the files name1, name2, and name3 to dir2 in the home directory and show the verbose output:
mv -v name1 name2 name3 test-dir
The output shows that the files have been moved successfully.
Ask Before Overwriting
Rename name1 to name2, but show a prompt to overwrite if the file name2 already exists.
mv -v -i name1 name2
In the example below, the file name2 was already in the directory. The
mv command prompted to overwrite the file and replaced its contents with the contents of name1.
Note: If you do not provide the
mv assumes you want to overwrite the destination file.
Create File Backup
Move the file name1 to the directory test-dir. If the file of the same name exists at the destination, create a backup with the extension .bak:
mv -S .bak -b name1 test-dir/name1
After the command executes, the directory contains two files:
- name1 is the moved file.
- name1.bak is a backup of the file initially present in the directory.
Batch Rename Files
mv with the Bash for loop to rename multiple files in one command. For example, to add the prefix test_ to all the files in a directory, type:
for file in *; do mv "$file" "test_$file"; done
Listing the directory contents shows that all the filenames start with test_:
After reading this article, you should know how to use the
mv command to move and rename files and directories in Linux. The article included the most common command options and provided examples of the frequently performed operations.