| MV(1) | User Commands | MV(1) |
mv — move
files
/usr/bin/mv |
[-fin] source
target_file |
/usr/bin/mv |
[-fin] source...
target_dir |
/usr/bin/mv |
[-fin] -T
source target |
/usr/xpg4/bin/mv |
[-fin] source
target_file |
/usr/xpg4/bin/mv |
[-fin] source...
target_dir |
/usr/xpg4/bin/mv |
[-fin] -T
source target |
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 can 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.
The third synopsis form allows target to either be a file or directory, but treats it as though a file was always specified. Specifically, it does not perform the synopsis two behavior of putting the file inside target_dir and instead would replace target_dir if the source is also a directory and target_dir is empty.
If mv determines that the mode of
target_file forbids writing, it prints the mode (see
chmod(2)), asks for a response, and
reads 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 can 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:
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 attempts 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 preserves only
the owner and group of the link itself.
If unable to preserve owner and group id,
mv clears S_ISUID and
S_ISGID bits in the target.
mv prints a diagnostic message to stderr if unable
to clear these bits, though the exit code is not affected.
mv might be unable to preserve extended attributes
if the target file system does not have extended attribute support.
/usr/xpg4/bin/mv prints a diagnostic message to
stderr for all other failed attempts to duplicate file characteristics. The
exit code is not 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.
-fmv moves the file(s) without prompting even if it
is writing over an existing target. Note that this
is the default if the standard input is not a terminal. This overrides any
-i and -n options already
specified on the command line.-imv prompts for confirmation whenever the move
would overwrite an existing target. An affirmative
answer means that the move should proceed. Any other answer prevents
mv from overwriting the
target. This overrides any
-n options already specified on the command line.
See the discussion of binary-specific behavior below for how
-i and -f interact.-nmv will not overwrite target
if it already exists, proceeding on to other sources. This does not
generate an error. This overrides any -i or
-f options already specified on the command
line.-TSpecifying the -f, the
-i, and the -n options is
not considered an error. The last option specified determines the behavior
of mv with one exception: the
-f option overrides all -i
options, regardless of where they appear in the command line.
Specifying the -f, the
-i, and the -n options is
not considered an error. The last option specified determines the behavior
of mv.
The following operands are supported:
See largefile(7) for the
description of the behavior of mv when encountering
files greater than or equal to 2 Gbyte (2^31 bytes).
See environ(7) for
descriptions of the following environment variables that affect the
execution of mv: LANG,
LC_ALL, LC_COLLATE,
LC_CTYPE, LC_MESSAGES, and
NLSPATH.
Affirmative responses are processed using the extended regular
expression defined for the yesexpr keyword in the
LC_MESSAGES category of the user's locale. The
locale specified in the LC_COLLATE category defines
the behavior of ranges, equivalence classes, and multi-character collating
elements used in the expression defined for yesexpr. The
locale specified in LC_CTYPE determines the locale
for interpretation of sequences of bytes of text data a characters, the
behavior of character classes used in the expression defined for the
yesexpr. See
locale(7).
The following exit values are returned:
cp(1), cpio(1), ln(1), rm(1), setfacl(1), chmod(2), attributes(7), environ(7), fsattr(7), largefile(7), standards(7)
A -- permits the
user to mark explicitly the end of any command line options, allowing
mv to recognize filename arguments that begin with a
-. As an aid to BSD migration,
mv accepts - as a synonym
for --. This migration aid
might disappear in a future release.
| March 22, 2026 | OmniOS |