---
name: "mv"
section: "1"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/mv"
---

# mv(1)

move files

## NAME

**mv** – move files

## SYNOPSIS

**mv** \[**-f** \| **-i** \| **-n**\] \[**-hv**\] *source* *target*

**mv** \[**-f** \| **-i** \| **-n**\] \[**-v**\] *source* *...* *directory*

## DESCRIPTION

In its first form, the **mv** utility renames the file named by the *source* operand to the destination path named by the *target* operand. This form is assumed when the last operand does not name an already existing directory.

In its second form, **mv** moves each file named by a *source* operand to a destination file in the existing directory named by the *directory* operand. The destination path for each operand is the pathname produced by the concatenation of the last operand, a slash, and the final pathname component of the named file.

The following options are available:

- **-f**

  Do not prompt for confirmation before overwriting the destination path. (The **-f** option overrides any previous **-i** or **-n** options.)

- **-h**

  If the *target* operand is a symbolic link to a directory, do not follow it. This causes the **mv** utility to rename the file *source* to the destination path *target* rather than moving *source* into the directory referenced by *target*.

- **-i**

  Cause **mv** to write a prompt to standard error before moving a file that would overwrite an existing file. If the response from the standard input begins with the character ‘y’ or ‘Y’, the move is attempted. (The **-i** option overrides any previous **-f** or **-n** options.)

- **-n**

  Do not overwrite an existing file. (The **-n** option overrides any previous **-f** or **-i** options.)

- **-v**

  Cause **mv** to be verbose, showing files after they are moved.

It is an error for the *source* operand to specify a directory if the target exists and is not a directory.

If the destination path does not have a mode which permits writing, **mv** prompts the user for confirmation as specified for the **-i** option.

As the [rename(2)](/rename/2.md) call does not work across file systems, **mv** uses [cp(1)](/cp/1.md) and [rm(1)](/rm/1.md) to accomplish the move. The effect is equivalent to:

```
rm -f destination_path && \
cp -pRP source_file destination && \
rm -rf source_file
```

## EXIT STATUS

The **mv** utility exits 0 on success, and \>0 if an error occurs.

## EXAMPLES

Rename file *foo* to *bar*, overwriting *bar* if it already exists:

```
$ mv -f foo bar
```

## COMPATIBILITY

The **-h**, **-n**, and **-v** options are non-standard and their use in scripts is not recommended.

## SEE ALSO

[cp(1)](/cp/1.md), [rm(1)](/rm/1.md), [symlink(7)](/symlink/7.md)

## STANDARDS

The **mv** utility is expected to be IEEE Std 1003.2 (“POSIX.2”) compatible.

## HISTORY

A **mv** command appeared in Version 1 AT&T UNIX.
