/usr/bin/mv [-fi] source target_file
/usr/bin/mv [-fi] source ... target_dir
/usr/xpg4/bin/mv [-fi] source target_file
/usr/xpg4/bin/mv [-fi] source... target_dir
在第一种用法概要形式中,mv 实用程序将 source 操作数指定的文件移到 target_file 指定的目标。source 和 target_file 不能重名。如果 target_file 不存在,mv 将创建名为 target_file 的文件。如果 target_file 存在,则将覆盖其内容。使用第一种用法概要形式的前提是最终操作数没有指定现有的目录。
在第二种用法概要形式中,mv 将 source 操作数指定的每个文件移到 target_dir 操作数指定的现有目录中的目标文件。每个 source 的目标路径是目标目录、一个斜杠字符 (/) 以及 source 的最后一个路径名组成部分的串联。使用第二种形式的前提是最终操作数指定了现有目录。
如果 mv 确定 target_file 的模式禁止写入,则将列显该模式(请参见 chmod(2)),要求响应,并读取一行的标准输入。如果响应是肯定的,则发生 mv(如果允许);否则退出命令。请注意,如果 target 与 ACL 关联,则显示的模式不能完全代表访问权限。当 source 的父目录可写入,并且设置了粘滞位时,以下一个或多个条件必须成立:
用户必须拥有文件
用户必须拥有目录
用户必须能够写入文件
用户必须是特权用户
如果 source 是一个文件,target_file 是到有多个链接的另一个文件的一个链接,则其他文件将保留,并且 target_file 将成为新的文件。
如果 source 和 target_file/target_dir 在不同的文件系统上,则 mv 将复制源并删除原始文件。到其他文件的任何硬链接将丢失。mv 会尝试将源文件特征复制到目标,其中包括所有者和组 ID、权限模式、修改和访问的次数、ACL 以及扩展属性(如果适用)。对于符号链接,mv 仅保留链接本身的所有者和组。
如果无法保留所有者和组 ID,mv 将清除目标中的 S_ISUID 和 S_ISGID 位。如果无法清除这些位,mv 会将诊断消息列显到标准错误,但退出代码不受影响。如果目标文件系统不支持扩展属性,mv 可能无法保留扩展属性。对于其他所有复制文件特征的失败尝试,/usr/xpg4/bin/mv 会将诊断消息列显到标准错误。退出代码不受影响。
要保留源文件特征,用户必须拥有相应的文件访问权限。其中包括成为超级用户,或者拥有与目标文件相同的所有者 ID。
支持以下选项:
mv 在移动文件时不提示,即使在要覆盖现有的 target 目标时也不提示。请注意,这是标准输出不是终端时的缺省行为。
只要移动操作将覆盖现有目标,mv 就会提示确认。无论是否从终端输入,都会执行该操作。如果提示确认失败,这就相当于被用户否决。确定的响应表示应继续移动。其他任何响应都将阻止 mv 覆盖 target。
同时指定 –f 和 –i 选项不算错误。–f 选项优先于 –i 选项。
同时指定 –f 和 –i 选项不算错误。最后指定的选项决定 mv 的行为。
支持下列操作数:
要移动的文件或目录的路径名。
被移动的文件或目录的新路径名。
要将输入文件移到其中的现有目录的路径名。
有关 mv 遇到大于或等于 2 GB(231 字节)文件时行为的说明,请参见 largefile(5)。
有关影响 mv 执行的以下环境变量的描述,请参见 environ(5):LANG、LC_ALL、LC_COLLATE、LC_CTYPE、LC_MESSAGES 和 NLSPATH。
肯定的回答使用为用户语言环境中 LC_MESSAGES 类别的 yesexpr 关键字定义的扩展正则表达式进行处理。LC_COLLATE 类别中指定的语言环境定义为 yesexpr 定义的表达式中使用的范围、等效类和多字符整理元素的行为。LC_CTYPE 中指定的语言环境确定文本数据字符字节序列解释的语言环境,以及为 yesexpr 定义的表达式中使用的字符类的行为。请参见 locale(5)。
将返回以下退出值:
已成功移动所有输入文件。
出现错误。
有关下列属性的说明,请参见 attributes(5):
|
|
cp(1)、cpio(1)、ln(1)、rm(1)、setfacl(1)、chmod(2)、attributes(5)、environ(5)、fsattr(5)、largefile(5)、standards(5)
-- 允许用户显式标记任何命令行选项的末尾,从而使 mv 可以识别以 - 开头的文件名参数。作为 BSD 迁移的辅助功能,mv 接受将 - 作为 -- 的等效字符。将来的版本可能会取消这项迁移辅助功能。