In the first synopsis form, the mv utility moves the file named by the source operand to the destination specified by the target_file. source and target_file may not have the same name. If target_file does not exist, mv creates a file named target_file. If target_file exists, its contents are overwritten. This first synopsis form is assumed when the final operand does not name an existing directory.
In the second synopsis form, mv moves each file named by a source operand to a destination file in the existing directory named by the target_dir operand. The destination path for each source is the concatenation of the target directory, a single slash character (/), and the last path name component of the source. This second form is assumed when the
final operand names an existing directory.
If mv determines that the mode of target_file forbids writing, it will print the mode (see chmod(2)), ask for a response, and read the standard input for one line. If the response is affirmative, the mv occurs, if permissible; otherwise, the command exits. Notice that the mode displayed may
not fully represent the access permission if target is associated with an ACL. When the parent directory of source is writable and has the sticky bit set, one or more of the following conditions must be true:
- the user must own the file
- the user must own the directory
- the file must be writable by the user
- the user must be a privileged user
If source is a file and target_file is a link to another file with links, the other links remain and target_file becomes a new file.
If source and target_file/target_dir are on different file systems, mv copies the source and deletes the original. Any hard links to other files are lost. mv will attempt to duplicate the source file characteristics to the target, that is, the owner and group id, permission modes, modification and access times, ACLs, and extended attributes, if applicable.
For symbolic links, mv will preserve only the owner and group of the link itself.
If unable to preserve owner and group id, mv will clear S_ISUID and S_ISGID bits in the target. mv will print a diagnostic message to stderr if unable to clear these bits, though the exit code will not be affected. mv may be unable to preserve extended attributes if the target file system does not have extended attribute support. /usr/xpg4/bin/mv will print a diagnostic message to
stderr for all other failed attempts to duplicate file characteristics. The exit code will not be affected.
In order to preserve the source file characteristics, users must have the appropriate file access permissions. This includes being super-user or having the same owner id as the destination file.
|