mv 命令

用途

移动文件。

语法

要移动和重命名文件,请输入:

mv [ -d ] [ -e ] [ -E{force|ignore|warn}] [ -i | -f ] [ -I ] SourceFile ... TargetFile

要移动和重命名目录,请输入:

mv [ -d ] [ -e ] -E{force|ignore|warn}] [ -i | -f ] [ -I ] SourceDirectory ... TargetDirectory

要将文件或目录移至对原始文件名进行维护的目录,请输入:

mv [ -d ] [ -e ] -E{强逼|忽略|警示} ] [ -i | -f ] [ -I ] SourceFile/SourceDirectory TargetDirectory

描述

注意: 除非指定 -i 标志,否则 mv 命令可以覆盖许多现有文件。 -i 标志会在覆盖文件之前提示确认。 如果同时指定了 -f-i 标志,那么最后指定的标志优先。

mv 命令将文件和目录从一个目录移动到另一个,或者重命名文件或目录。 如果将文件或目录移动到一个新的目录,那么会保留基本文件名。 当移动文件时,与其他文件的所有链接都保持不动,除非您将其移动到不同的文件系统。 当将目录移动到现有目录时,目录及其内容添加到现有目录下。

当使用 mv 命令来重命名文件或目录时,TargetDirectory 参数可以指定新的文件名或新的目录路径名。

如果移动文件将覆盖没有设置写入权限的现有文件,并且如果标准输入是工作站,mv 命令显示文件权限代码并且从标准输入中读取一行。 如果该行以y或语言环境的等效项y mv 命令移动文件。 如果响应是除ymv 命令对该文件不执行任何操作,并继续处理下一个指定的文件。 如果 TargetFile 与 ACL 关联,那么显示的文件许可权代码可能无法完全表示访问许可权。 当 SourceFile 的父目录是可写的并且有粘性位设置,以下的一个或多个条件为真:

  • 用户必须拥有文件。
  • 用户必须拥有目录。
  • 用户必须是特权用户。
  • 用户必须对文件具有写权限。

可以使用 -f 选项覆盖此警告消息和输入提示。

可以使用 mv 命令在相同的文件系统或文件系统之间移动文件。 不管是在一个文件系统中工作,还是跨文件系统工作,mv 命令将文件复制到目标处并删除原始文件。 mv 命令在新文件中保存最近数据修改时间、最近访问时间、用户标识、组标识、文件方式、扩展属性以及原始文件的 ACL。 对于符号链路,mv 命令仅保存该链路本身的所有者和组。

如果不能保存所有者和组标识,mv 命令清除目标中的 S_ISUID 和 S_ISGID 位。 如果不能清除这些位,mv 命令将诊断消息打印到标准错误中,退出码无效。

如果命令提前终止,mv 命令将修改源文件或者目标路径。
注: mv 命令支持 -- (dash , dash) 参数作为指示标志结束的定界符。

如果对象导出为 NFS V 4 引用,那么 mv 命令将不会移动该对象。 引用对象被标记为忙,并保持该状态直至它不被导出。

注: 可以使用 AIX_STDBUFSZ 环境变量来配置此命令生成的读写系统调用的 I/O 缓冲区大小。

标志

注意: 除非指定 -i 标志,否则 mv 命令可以覆盖许多现有文件。 -i 标志会在覆盖文件之前提示确认。 如果同时指定了 -f-i 标志,那么最后指定的标志优先。

描述
-d 源文件以解密(明文)格式存储在目标上。
-e 如果目标文件系统是加密文件系统 (EFS),那么源文件以加密格式存储。
-E -E 选项需要下列参数之一。 如果您省略了 -E 选项,warn 就是缺省的行为。
force
如果文件的固定范围大小或者空间保留无法保存,那么对文件的 mv 操作失败。
忽略
忽略任何保持范围属性中的错误。
warn
如果文件的空间保留或者固定扩展数据块大小无法保存,就发出一个警告。
-f 在覆盖现有文件之前不提示。
-i 移动文件或目录到现有的路径名称之前,将显示后跟问号的文件名来进行提示。 如果以行开头的行作为答案y或语言环境的等效项y,动作继续。 其他任何应答都阻止移动发生。
-我 在 ACL 转换期间不显示警告消息。
下表显示不同情况下目标文件的加密或解密状态:
mv 命令的显式标志 源文件 目标文件系统 结果
-e(加密) 非 EFS 非 EFS 错误
-e 非 EFS EFS 加密的文件
-e EFS EFS 加密的文件
-e EFS 非 EFS 错误
-d(解密) 非 EFS 非 EFS 明文文件
-d 非 EFS EFS 明文文件
-d EFS 非 EFS 明文文件
-d EFS EFS 明文文件
非显式标志 非 EFS 非 EFS 明文文件
非显式标志 非 EFS EFS 如果目标文件系统已激活 EPS,那么目标文件为加密文件。 否则,目标文件为明文文件。
非显式标志 EFS EFS 加密的文件
非显式标志 EFS 非 EFS 错误
注: 不允许使用纯文本文件覆盖加密文件,反之亦然,除非指定 -f 标志。 目标的加密状态取决于 -e-d 标志、加密继承(如果没有将 -e-d 标志与 -f 标志一起指定)以及源文件的加密状态(如果加密继承不活动)。

示例

  1. 要重命名文件,请输入:
    mv appendix apndx.a

    此命令重命名appendixapndx.a. 如果是指定的文件apndx.a已存在,其旧内容将替换为appendix.

  2. 要移动目录,请输入:
    mv book manual

    此命令将所有文件和目录移至book到指定的目录manual,如果manual。 否则,目录book已重命名manual.

  3. 要将文件移动到另一个目录并为其提供新名称,请输入:
    mv intro manual/chap1

    此命令移动intromanual/chap1. 名称intro从当前目录中除去,并且同一文件显示为chap1在目录中manual.

  4. 要将文件移动到另一个目录,保持相同的名称,请输入:
    mv chap3 manual

    此命令移动chap3manual/chap3

    注:例 1 和例 3 命名了两个文件,例 2 命名了两个现有目录,而例 4 命名了一个文件和一个目录。

  5. 要将多个文件移动到另一个目录中,请输入:
    mv chap4 jim/chap5 /home/manual

    此命令将移动chap4文件到 /home/manual/chap4文件目录和jim/chap5文件到/home/manual/chap5中。

  6. 要将 mv 命令与模式匹配字符配合使用,请输入:
    mv manual/* .

    此命令将移动manual目录到当前目录中。 (句号) ,保留他们的姓名manual。这一举动也空空manual。必须在星号和句点之间输入空格。

    注:模式匹配字符仅扩展现有文件的名称。 例如,命令mv intro man*/chap1如果文件不起作用manual/chap1不存在。

退出状态

描述
重大安全事件数量 所有输入文件移动成功。
> 0 发生错误。

文件

描述
/usr/bin/mv 包含 mv 命令。