Reference

mv(1)

move (rename) files

NAME

mv - move (rename) files

SYNOPSIS

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

DESCRIPTION

Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

Mandatory arguments to long options are mandatory for short options too.

--backup[=CONTROL]

make a backup of each existing destination file

-b

like --backup but does not accept an argument

--debug

explain how a file is copied. Implies -v

--exchange

exchange source and destination

-f, --force

do not prompt before overwriting

-i, --interactive

prompt before overwrite

-n, --no-clobber

(deprecated) silently skip existing files. See also --update

If you specify more than one of -i, -f, -n, only the final one takes effect.

--no-copy

do not copy if renaming fails

--strip-trailing-slashes

remove any trailing slashes from each SOURCE argument

-S, --suffix=SUFFIX

override the usual backup suffix

-t, --target-directory=DIRECTORY

move all SOURCE arguments into DIRECTORY

-T, --no-target-directory

treat DEST as a normal file

--update[=UPDATE]

control which existing files are updated; UPDATE={all,none,none-fail,older(default)}

-u

equivalent to --update[=older]. See below

-v, --verbose

explain what is being done

-Z, --context

set SELinux security context of destination file to default type

--help

display this help and exit

--version

output version information and exit

UPDATE controls which existing files in the destination are replaced. 'all' is the default operation when an --update option is not specified, and results in all existing files in the destination being replaced. 'none' is like the --no-clobber option, in that no files in the destination are replaced, and skipped files do not induce a failure. 'none-fail' also ensures no files are replaced in the destination, but any skipped files are diagnosed and induce a failure. 'older' is the default operation when --update is specified, and results in files being replaced if they're older than the corresponding source file.

The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX. The version control method may be selected via the --backup option or through the VERSION_CONTROL environment variable. Here are the values:

none, off

never make backups (even if --backup is given)

numbered, t

make numbered backups

existing, nil

numbered if numbered backups exist, simple otherwise

simple, never

always make simple backups

AUTHOR

Written by Mike Parker, David MacKenzie, and Jim Meyering.

REPORTING BUGS

Report bugs to: <[email protected]>.
Report any translation bugs to: <https://translationproject.org/team/>.
GNU coreutils home page: <https://www.gnu.org/software/coreutils/>
General help using GNU software: <https://www.gnu.org/gethelp/>

COPYRIGHT

Copyright © 2026 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

SEE ALSO

rename(2)

Full documentation <https://www.gnu.org/software/coreutils/mv>
or available locally via: info '(coreutils) mv invocation'

History

--context since Debian 8 (Jessie); --debug since Debian 13 (Trixie); --exchange since Debian 13 (Trixie); --no-clobber since Debian 6.0 (Squeeze); --no-copy since Debian 13 (Trixie); --no-target-directory since Debian 4.0 (Etch); --strip-trailing-slashes since Debian 5.0 (Lenny); --target-directory since Debian 2.2 (Potato); -T since Debian 4.0 (Etch); -Z since Debian 8 (Jessie); -n since Debian 6.0 (Squeeze); -t since Debian 4.0 (Etch).

--reply until Debian 3.1 (Sarge); --version-control until Debian 2.1 (Slink); -V until Debian 2.1 (Slink).