May the source be with you, but remember the KISS principle ;-)
Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
(slightly skeptical) Educational society promoting "Back to basics" movement against IT overcomplexity and  bastardization of classic Unix

mv Command

News Recommended Books Recommended Links Examples Renaming files with special characters


cp command  ln command rm Admin Horror Stories Unix History



The external mv command moves a file from an existing location to a new location. It is also used as the rename command to change the name of a file.  It often can be used instead of rm  command providing safer deletion fo files.  Alternative to move command can be ln command which create reference for the file without moving the file to new directory or under different name.

The mv command can be used whenever you need to rename  a file including cases when the file has special characters in it. 

As Unix does not have a rename command usage of mv for renaming of a directory to the name that already exists can lead to SNAFU.

It has three formats allowing you to:

The general formats of the mv command follow.

mv [ -if ] [ - ] filename new_filename
mv [ -if ] [ - ] filename directory
mv [ -if ] [ - ] old_directory new_directory


Only one option may be used to control how mv functions.

-f Force the move to occur. The response of "yes" is assumed and the move is performed. No interactive response is requested.
If the standard input is not the terminal keyboard, then the -f option is assumed.
-i The command runs in interactive mode. If the destination file being moved to already exists, mv prompts you with the filename being moved followed by a question mark. If you respond with any string beginning with a y, the move is performed. Any other response causes mv to skip to the next move.
- Interpret all arguments that follow as filenames. This allows you to specify filenames and directories that begin with a hyphen (-). This can become helpful if a filename is created that begins with a hyphen.


following list describes the arguments that may be passed to the mv command.

filename The existing file being moved or renamed.
filename_list The names of files to be moved to a new destination. The destination must be a directory.
new_filename The new filename the existing file will be given.
directory The name of the directory the files will reside in after the mv is performed.
old_directory The existing directory being renamed.
new_directory The name of a newly created directory. The destination directory.

The first format renames a file. The name of the existing file is changed to the name of new_filename. The new_filename and the existing filename cannot be the same full pathname. They may have the same filename, providing they reside in different directories. If the new filename is an existing file and you have write permissions, its contents are lost. If the destination is a link to another file, the link is lost and the destination filename points to the new file.

The second format moves one or more files to a different directory. The filename_list is a list of pathnames being moved. The basename of each pathname is used for the destination filename in the specified directory. For example, if you wanted to move all files beginning with memo to the memodir directory, you would type mv memo* memodir.

The third format renames a directory. The name of the directory is changed to the new directory name you specify. The same restrictions apply to directory renaming as file renaming. If you are renaming directories, the two directory names reside in the same file system.

The mv command actually performs an ln and an rm. A link (ln) is created from the existing file to the new filename. Then the existing filename is removed (rm). If the new filename already exists, it is removed (rm) before the move attempts to link.

Before mv performs these steps it checks the destination file for write permissions. If you do not have write permissions on the destination file or directory, mv will display the mode (chmod; Module 17) and request a response from standard input. If the input line you type starts with a "y," mv attempts to move the file to the target. If the ownership permissions allow you to write to the target, the move will occur. If you do not have permission to write to the destination, the mv will fail.

If you are moving files across file systems, the mv command performs a cp and then an rm command. The file is copied to its destination and then the existing file is removed. The new file is owned by you if you moved it.

Some common formats are:

mv letter* LTR # move all files beginning with letter to the
# LTR directory
mv pup dog # rename the file "pup" to "dog"
mv LTR LTRS # rename directory "LTR" to "LTRS"

The mv command must copy the existing file to the destination and remove the original if the files reside on different file systems. All links are lost if this action occurs.

Related commands are cp, ln, rm, chmod, chown, and ls commands.


  1. List your HOME directory by typing ls and pressing Return. Notice the file named file1 in the following display.
       cj> ls -x
       bin     calendar  db   file1     file2     letters
  2. Rename file2 to stuff by typing mv file2 stuff and pressing Return.
  3. List the directory to verify your filename changed by typing ls and pressing Return. The following display reflects the change:
       cj> ls -x
       bin     calendar  db   file1     letters   stuff
  4. Let's assume that we have a file with spaces in it (or worse with special characters) and want to rename it to normal file. One way to do this is to use asterisk or dot in place of those characters in name. For example
    if you have a file "my windows file with spaces.html" you can try
    mv my*spaces.shtml "my_normal_file.html

Top Visited
Past week
Past month


Old News ;-)

[Aug 28, 2019] How to Replace Spaces in Filenames with Underscores on the Linux Shell

You probably would be better off with -nv options for mv
Aug 28, 2019 |
/n /n
/n$ for file in *; do mv "$file" `echo $file | tr ' ' '_'` ; done/n
/n /n

[Aug 28, 2019] 9 Quick 'mv' Command Practical Examples in Linux

Aug 28, 2019 |
/n /n/n

Example:5) Do not overwrite existing file at destination (mv -n)


Use '-n' option in mv command in case if we don't want to overwrite an existing file at/n destination,

/n[linuxbuzz@web ~]$ ls -l tools.txt /tmp/sysadmin/tools.txt/n-rw-rw-r--. 1 linuxbuzz linuxbuzz 0 Aug 24 09:59 /tmp/sysadmin/tools.txt/n-rw-rw-r--. 1 linuxbuzz linuxbuzz 0 Aug 24 10:10 tools.txt/n[linuxbuzz@web ~]$/n

As we can see tools.txt is present in our current working directory and in /tmp/sysadmin,/n use below mv command to avoid overwriting at destination,

/n[linuxbuzz@web ~]$ mv -n tools.txt /tmp/sysadmin/tools.txt/n[linuxbuzz@web ~]$/n
Example:6) Forcefully overwrite write protected file at destination (mv -f)/n/n

Use '-f' option in mv command to forcefully overwrite the write protected file at/n destination. Let's assumes we have a file named " bands.txt " in our present working directory/n and in /tmp/sysadmin.

/n[linuxbuzz@web ~]$ ls -l bands.txt /tmp/sysadmin/bands.txt/n-rw-rw-r--. 1 linuxbuzz linuxbuzz 0 Aug 25 00:24 bands.txt/n-r--r--r--. 1 linuxbuzz linuxbuzz 0 Aug 25 00:24 /tmp/sysadmin/bands.txt/n[linuxbuzz@web ~]$/n

As we can see under /tmp/sysadmin, bands.txt is write protected file,


Without -f option

/n[linuxbuzz@web ~]$ mv bands.txt /tmp/sysadmin/bands.txt/n

mv: try to overwrite '/tmp/sysadmin/bands.txt', overriding mode 0444/n (r–r–r–)?


To forcefully overwrite, use below mv command,

/n[linuxbuzz@web ~]$ mv -f bands.txt /tmp/sysadmin/bands.txt/n[linuxbuzz@web ~]$/n
Example:7) Verbose output of mv command (mv -v)/n/n

Use '-v' option in mv command to print the verbose output, example is shown below

/n[linuxbuzz@web ~]$ mv -v  buzz51.txt buzz52.txt buzz53.txt buzz54.txt /tmp/sysadmin//n'buzz51.txt' -> '/tmp/sysadmin/buzz51.txt'/n'buzz52.txt' -> '/tmp/sysadmin/buzz52.txt'/n'buzz53.txt' -> '/tmp/sysadmin/buzz53.txt'/n'buzz54.txt' -> '/tmp/sysadmin/buzz54.txt'/n[linuxbuzz@web ~]$/n
Example:8) Create backup at destination while using mv command (mv -b)/n/n

Use '-b' option to take backup of a file at destination while performing mv command, at/n destination backup file will be created with tilde character appended to it, example is shown/n below,

/n[linuxbuzz@web ~]$ mv -b buzz55.txt /tmp/sysadmin/buzz55.txt/n[linuxbuzz@web ~]$ ls -l /tmp/sysadmin/buzz55.txt*/n-rw-rw-r--. 1 linuxbuzz linuxbuzz 0 Aug 25 00:47 /tmp/sysadmin/buzz55.txt/n-rw-rw-r--. 1 linuxbuzz linuxbuzz 0 Aug 25 00:37 /tmp/sysadmin/buzz55.txt~/n[linuxbuzz@web ~]$/n
Example:9) Move file only when its newer than destination (mv -u)/n/n

There are some scenarios where we same file at source and destination and we wan to move the/n file only when file at source is newer than the destination, so to accomplish, use -u option in/n mv command. Example is shown below

/n[linuxbuzz@web ~]$ ls -l tools.txt /tmp/sysadmin/tools.txt/n-rw-rw-r--. 1 linuxbuzz linuxbuzz 55 Aug 25 00:55 /tmp/sysadmin/tools.txt/n-rw-rw-r--. 1 linuxbuzz linuxbuzz 87 Aug 25 00:57 tools.txt/n[linuxbuzz@web ~]$/n

Execute below mv command to mv file only when its newer than destination,

/n[linuxbuzz@web ~]$ mv -u tools.txt /tmp/sysadmin/tools.txt/n[linuxbuzz@web ~]$/n

That's all from this article, we have covered all important and basic examples of mv/n command.


Hopefully above examples will help you to learn more about mv command. Write your feedback/n and suggestions to us.

/n /n /n

[May 05, 2017] As Unix does not have a rename command usage /nof mv for renaming can lead to SNAFU


If destination does not exist it behaves as rename command but if destination exists and is directory it move it one level up


For example, if you have directories /home and home2 and want to move all subdirectories from /home2 to /home /n and the directory /home is empty you can't use

mv home2 home

if you forget to remove the directory /home, mv silently will create /home/home2 directory and you have a problem if /n this is user home directories.

/n /n

BigAdmin Description mv [filename]{,.new_suffix}

mv [filename]{,.new_suffix}

This format of the 'mv' command appends the 'new_suffix' to the filename without having to re-type the filename over again.

% mv my_file_name.txt{,.old}

This moves the file named 'my_file_name.txt' to 'my_file_name.txt.old'.

Useful for very long filenames.



Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy


War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes


Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law


Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater�s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D

Copyright � 1996-2021 by Softpanorama Society. was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to to buy a cup of coffee for authors of this site


The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the Softpanorama society. We do not warrant the correctness of the information provided or its fitness for any purpose. The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last modified: February, 19, 2020