mv(英語:move)是类Unix操作系统中移动单个或多个文件目录的命令。一般在移动操作之后,原来的文件或目录不能再次访问。移动后的文件名可以与原来相同(只要不与原文件在相同目录中),也可以不同。当需要移动的文件和新文件位于同一文件系统上时,mv命令只是将原始文件重命名来达到移动的效果。操作要求拥有需要被修改目录的写入权限。

与已存在文件的冲突

当文件将被移动时,若目标目录含有与原始文件同名的文件,则目标文件将被删除。如果已存在的目标文件并没有写权限,但它的所在目录拥有写权限,则mv命令在移动前请求用户确认操作(当mv在终端中执行时)。但是使用 -f (强制) 选项来移动时,mv命令会跳过用户确认环节而直接执行移动。

移动行为

选项

大多数版本的mv命令支持以下选项:

  • -h 帮助模式,显示支持的附加选项。 使用man mv命令可以查看在你所使用的操作系统中mv命令支持的详细参数选项。
  • -i 交互模式,在将要覆盖一个已存在文件之前在标准错误中输出提示,若用户回答以'Y'或'y'字母开头,则覆盖操作将继续执行(覆盖此选项之前的-f和-n选项)。
  • -n 不覆盖已存在的文件。(覆盖此选项之前的-f和-i选项)。
  • -f 强制模式,强制覆盖目标文件(覆盖此选项之前的-i和-n选项)。
  • -v 详述模式,在移动文件(或目录)后列出它们的名字。

附加选项(可以使用命令 man mv 以查看详情):

  • -u 更新选项,也就是只在原始文件比目标文件新或目标文件不存在时执行移动。
  • -b 备份选项,使用一个~作为后缀来备份已存在的目标文件。

示例

将'myfile'重命名为'myoldfilename':

mv myfile myoldfilename

从当前目录移动'myfile'到用户家目录

 mv myfile ~/myfile

将'myfile'移动到相对路径位置'subdir/myfile':

 mv myfile subdir/myfile     
 mv myfile subdir            # 此命令与前一命令作用相同,但不指明目标文件的文件名(暗示使用相同的文件名)

将'myfile'移动到子目录'subdir',并改名为'myfile2':

 mv myfile subdir/myfile2

移动'be.03'文件到已挂载目录'/mnt/bkup'的子目录'bes'中(原文件将在移动完成后被删除):

 mv be.03 /mnt/bkup/bes

移动多个文件到'mydir'(这些文件是'afile' 'another' '/home/yourdir/yourfile'):

 mv afile another /home/yourdir/yourfile mydir

将以'Jun'开头的文件都移到'bkup/06'目录中,并输出被移动文件的详细清单:

 mv -v Jun* bkup/06

查看关于mv命令的简单帮助,包括命令语法:

 mv --help

查看mv命令的手册页

 man mv

参见

外部参考