mv Command

Purpose

Moves files.

Syntax

To Move and Rename a File

mv [ -d ] [ -e ] [ -E{force|ignore|warn} ] [ -i | -f ] [ -I ] SourceFile ... TargetFile

To Move and Rename a Directory

mv [ -d ] [ -e ] -E{force|ignore|warn} ] [ -i | -f ] [ -I ] SourceDirectory ... TargetDirectory

To Move Files or Directories to a Directory Maintaining Original File Names

mv [ -d ] [ -e ] -E{force|ignore|warn} ] [ -i | -f ] [ -I ] SourceFile/SourceDirectory TargetDirectory

Description

Attention: The mv command can overwrite many existing files unless you specify the -i flag. The -i flag prompts you to confirm before it overwrites a file. If both the -f and -i flags are specified in combination, the last flag specified takes precedence.

The mv command moves files and directories from one directory to another or renames a file or directory. If you move a file or directory to a new directory, it retains the base file name. When you move a file, all links to other files remain intact, except when you move it to a different file system. When you move a directory into an existing directory, the directory and its contents are added under the existing directory.

When you use the mv command to rename a file or directory, the TargetDirectory parameter can specify either a new file name or a new directory path name.

If moving the file would overwrite an existing file that does not have write-permission set and if standard input is a workstation, the mv command displays the file-permission code and reads a line from standard input. If that line begins with a y or the locale's equivalent of a y, the mv command moves the file. If the response is anything other than a y, the mv command does nothing to that file and continues with the next specified file. The file-permission code displayed may not fully represent the access permission if the TargetFile is associated with an ACL. When the parent directory of the SourceFile is writable and has the sticky bit set, one or more of the following conditions are true:

This warning message and prompt for input can be overridden by using the -f option.

You can use the mv command to move files within the same file system or between file systems. Whether you are working in one file system or across file systems, the mv command copies the file to the target and deletes the original file. The mv command preserves in the new file the time of the most recent data modification, the time of the most recent access, the user ID, the group ID, the file mode, the extended attributes, and ACLs of the original file. For symbolic links, the mv command preserves only the owner and group of the link itself.

If it is unable to preserve the owner and group ID, the mv command clears S_ISUID and S_ISGID bits in the target. The mv command prints a diagnostic message to stderr if it is unable to clear these bits, though the exit code is not affected.

The mv command modifies either the source file or the destination path if the command is prematurely terminated.
Note: The mv command supports the (dash, dash) parameter as a delimiter that indicates the end of the flags.

The mv command will not move an object if the object is exported as an NFS version 4 referral. The referral object is marked as busy and remains so until it is unexported."

Flags

Attention: The mv command can overwrite many existing files unless you specify the -i flag. The -i flag prompts you to confirm before it overwrites a file. If both the -f and -i flags are specified in combination, the last flag specified takes precedence.
Item Description
-d The source file is stored in decrypted (clear-text) format on target.
-e The source file is stored in encrypted form, if the target file system is an Encrypted File System (EFS).
-E The -E option requires one of the following arguments. If you omit the -E option, warn is the default behavior.
force
Fails the mv operation on a file if the fixed extent size or space reservation of the file cannot be preserved.
ignore
Ignores any errors in preserving extent attributes.
warn
Issues a warning if the space reservation or the fixed extent size of the file cannot be preserved.
-f Does not prompt you before overwriting an existing file.
-i Prompts you before moving a file or directory to an existing path name by displaying the name of the file followed by a question mark. If you answer with a line starting with y or the locale's equivalent of a y, the move continues. Any other reply prevents the move from occurring.
-I Suppresses the warning message during ACL conversion.
The following table shows the encryption or decryption status of the target file under different conditions:
Explicit flag for the cp command Source file Target file system Result
-e (encrypted) Non-EFS Non-EFS Error
-e Non-EFS EFS Encrypted file
-e EFS EFS Encrypted file
-e EFS Non-EFS Error
-d (decrypted) Non-EFS Non-EFS Clear-text file
-d Non-EFS EFS Clear-text file
-d EFS Non-EFS Clear-text file
-d EFS EFS Clear-text file
No explicit flag Non-EFS Non-EFS Clear-text file
No explicit flag Non-EFS EFS If the target file system is EFS activated, the target file is an encrypted file. Else, the target file is a clear-text file.
No explicit flag EFS EFS Encrypted file
No explicit flag EFS Non-EFS Error
Note: It is not permitted to overwrite an encrypted file with a plain-text file and vice versa unless you specify the -f flag. The encryption status of the target depends on the -e or -d flag, the encryption inheritance if you do not specify the -e or -d flag with the -f flag, and the encryption status of the source file if the encryption inheritance is not active.

Examples

  1. To rename a file, enter:
    mv appendix apndx.a

    This command renames appendix to apndx.a. If a file named apndx.a already exists, its old contents are replaced with those of appendix.

  2. To move a directory, enter:
    mv book manual

    This command moves all files and directories under book to the directory named manual, if manual exists. Otherwise, the directory book is renamed manual.

  3. To move a file to another directory and give it a new name, enter:
    mv intro manual/chap1

    This command moves intro to manual/chap1. The name intro is removed from the current directory, and the same file appears as chap1 in the directory manual.

  4. To move a file to another directory, keeping the same name, enter:
    mv chap3 manual

    This command moves chap3 to manual/chap3

    Note: Examples 1 and 3 name two files, example 2 names two existing directories, and example 4 names a file and a directory.
  5. To move several files into another directory, enter:
    mv chap4 jim/chap5 /home/manual

    This command moves the chap4 file to the /home/manual/chap4 file directory and the jim/chap5 file to the /home/manual/chap5 file.

  6. To use the mv command with pattern-matching characters, enter:
    mv manual/* .

    This command moves all files in the manual directory into the current directory . (period), retaining the names they had in manual. This move also empties manual. You must type a space between the asterisk and the period.

    Note: Pattern-matching characters expand names of existing files only. For example, the command mv intro man*/chap1 does not work if the file manual/chap1 does not exist.

Exit Status

Item Description
0 All input files were moved successfully.
>0 An error occurred.

Files

Item Description
/usr/bin/mv Contains the mv command.