Open In App

How to Move File in Linux | mv Command

Last Updated : 10 Jun, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

In UNIX-based operating systems like Linux and macOS, `mv` stands for "move". The mv command is a UNIX command for renaming and moving files and directories within a filesystem. Although desktop operating systems have graphical user interfaces for file operations, calling mv in the terminal, usually offers a better approach. Uses of mv command are:

  • Renaming a file or directory.
  • Moving files between directories.
  • Organizing files into different folders.
  • Relocating data to different storage locations.
  • Updating directory structures without altering file contents.
  • If source and destination are on the same filesystem, it renames without changing the item's timestamp.

Syntax of mv command in Linux

The Basic Syntax for mv command in Linux is mentioned below.

mv [options(s)] [source_file_name(s)] [Destination_file_name]
  • source_file_name(s) = The name of the files that we want to rename or move.
  • Destination_file_name = The name of the new location or the name of the file.

1. How to Rename a file in Linux Using mv Command

Use the mv command to rename a file while keeping it in the same directory.

Syntax:

mv [source_file_name(s)] [Destination_file_name]

Enter your source file name in place of [source_file_name(s)] and your destination file name in place of [Destination_file_name].

For Example:

If we have a file "name = jayesh_gfg" and want to rename it to "name = geeksforgeeks".

mv jayesh_gfg geeksforgeeks
mv jayesh_gfg geeksforgeeks
mv jayesh_gfg geeksforgeeks

Here we used the `ls` command to see the files and directories in the following location.

This command is renamed `jayesh_gfg` to `geeksforgeeks`. If `geeksforgeeks` already exists, in that case, it will be overwritten without prompting for confirmation.

2. How to Move a File in Linux Using mv Command

The mv Command in Linux is used to move files or directories from the source_file_name(s) to the specified Destination_path by modifying their filesystem location without duplicating data.

Syntax:

mv [source_file_name(s)] [Destination_path]

For Example:

If we have a file "name = geeksforgeeks" and want to move it to location "name = /home/jayeshkumar/jkj".

mv geeksforgeeks /home/jayeshkumar/jkj/
mv geeksforgeeks /home/jayeshkumar/jkj/
mv geeksforgeeks /home/jayeshkumar/jkj/

Here we used the `ls` command to see the files and directories in the following location.

This command moved file "name = `geeksforgeeks`" to the destination "name = "/home.jayeshkumar/jkj/".

3. How to Move Multiple files in Linux Using mv Command

The mv Command allows moving multiple files like source_file_name_1, source_file_name_2... simultaneously to a specified Destination_path in the Linux filesystem without creating duplicates.

Syntax:

mv [source_file_name_1] [source_file_name_2] [source_file_name_ .....] [Destination_path]

For Example:

If we have a file "name = gfg_1 , gfg_2" and want to move it to location "name = /home/jayeshkumar/jkj".

mv gfg_1 gfg_2 /home/jayeshkumar/jkj/
mv gfg_1 gfg_2 /home/jayeshkumar/jkj/
mv gfg_1 gfg_2 /home/jayeshkumar/jkj/

Here we used the `ls` command to see the files and directories in the following location.

This command moved file "name = `gfg_1 and gfg_2`" to the destination "name = "/home.jayeshkumar/jkj/".

4. How to Rename a directory in Linux  Using mv Command in Linux

The mv Command in Linux renames a directory by changing its source_directory_name(s) to the specified Destination_directory_name, and if the destination exists, it gets overwritten without confirmation.

Syntax:

mv [source_directory_name(s)] [Destination_directory_name]

For Example:

If we have a directory "name = jkj" and want to rename it to "name = new_gfg".

mv jkj new_gfg
mv jkj new_gfg
mv jkj new_gfg

Here we used `ls` command to see the files and directories in the following location.

This command renames `jkj` to `new_gfg`. If `new_gfg` already exists, in that case it will be overwritten without prompting for confirmation.

Options Available in mv Command

The mv Command provides multiple options like -i (interactive confirmation), -f (force overwrite), -n (no-clobber to prevent overwriting), -b (backup with ~ suffix), and --version to display the current version, allowing fine control over file and directory move operations.

1. -i (interactive)

The "-i" option makes the "mv" command ask for confirmation before overwriting an existing file. If the file doesn't exist, it will simply rename or move it without prompting.

Syntax:

mv -i [source_file/directory_name(s)] [Destination_file/directory_name/path]

Enter your source file/directory name in place of [source_file/directory_name(s)] and your destination file/directory name/path in place of [Destination_file/directory_name/path].

For Example:

If we have a file "name = jayesh_gfg" and want to rename it to existing file "name = geeksforgeeks".

mv -i jayesh_gfg geeksforgeeks
mv -i jayesh_gfg geeksforgeeks
mv -i jayesh_gfg geeksforgeeks

Here we used `ls` command to see the files and directories in the following location.

Here we have to give permission by typing yes = `y` and no =`n`.

2. -f (Force)

mv prompts for confirmation overwriting the destination file if a file is write-protected. The -f option overrides this minor protection and overwrites the destination file forcefully and deletes the source file. 

Syntax:

mv -f [source_file/directory_name(s)] [Destination_file/directory_name/path]

Enter your source file/directory name in place of [source_file/directory_name(s)] and your destination file/directory name/path in place of [Destination_file/directory_name/path].

For Example:

If we have a file "name = gfg" and want to rename it to existing file "name = geeksforgeeks".

mv -f gfg geeksforgeeks
mv -f gfg geeksforgeeks
mv -f gfg geeksforgeeks

Here we used `ls` command to see the files and directories in the following location.

3. -n (no-clobber)

With -n option, mv prevents an existing file from being overwritten.

Syntax:

mv -n [source_file/directory_name(s)] [Destination_file/directory_name/path]

Enter your source file/directory name in place of [source_file/directory_name(s)] and your destination file/directory name/path in place of [Destination_file/directory_name/path].

For Example:

If we have a file "name = oldfile" and want to rename it to existing file "name = newfile".

mv -n oldfile newfile
mv -n oldfile newfile
mv -n oldfile newfile

Here we used `ls` command to see the files and directories in the following location.

4. -b(backup)

With this option, it is easier to take a backup of an existing file that will be overwritten as a result of the mv command. This will create a backup file with the tilde character (~) appended to it. 

Syntax:

mv -b [source_file/directory_name(s)] [Destination_file/directory_name/path]

Enter your source file/directory name in place of [source_file/directory_name(s)] and your destination file/directory name/path in place of [Destination_file/directory_name/path].

For Example:

If we have a file "name = first_file" and want to rename it to existing file "name = second_file".

mv -b first_file second_file
mv -b first_file second_file
mv -b first_file second_file

Here we used `ls` command to see the files and directories in the following location.

5. --version

This option is used to display the version of mv which is currently running on your system. 

Syntax:

mv --version
mv --version
mv --version

Conclusion 

The mv command is a useful tool for managing directories and files in Linux Operating Systems. We have discussed two distinct functions of `mv` command they are: renaming or moving files or directories from one location to another. Overall, we can say that `mv` command is an essential tool for managing files and directories efficiently in Linux.


Next Article

Similar Reads