mv 命令
用途
移动文件。
语法
移动并重命名文件
mv [ -E{force|ignore|warn} ] [ -i | -f ] SourceFile TargetFile
移动并重命名目录
mv -E{force|ignore|warn} ] [ -i | -f ] SourceDirectory ... TargetDirectory
将文件移动到维护原始文件名的目录
mv -E{force|ignore|warn} ] [ -i | -f ] SourceFile ... TargetDirectory
描述
注意: mv 命令可以覆盖许多现有文件,除非指定 -i 标志。-i 标志提示您在覆盖文件前先确认。如果 -f 和 -i 标志进行组合指定,则最后指定的标志占优。
mv 命令把文件和目录从一个目录移动到另一个,或者重命名文件或目录。如果把文件或目录移动到一个新的目录,保留基本文件名。当移动文件时,与其它文件的所有链接都保持不动,除非当您将其移动到不同的文件系统时。当把目录移动到现有目录时,目录及其内容添加到现有目录下。
当使用 mv 命令来重命名文件或目录时,TargetDirectory 参数可以指定新的文件名或新的目录路径名。
如果移动文件将覆盖没有写权限设置的现有文件,并且如果标准输入是工作站, mv 命令显示文件权限代码并且从标准输入中读取一行。如果该行以 y
或者语言环境中 y
的等价字符开始,mv 命令就移动文件。如果响应是除了 y
以外的其它任何字母,mv 命令对该文件不做任何事而是继续下一个指定的文件。如果 TargetFile 与 ACL 关联,则显示的文件许可权代码可能无法完全表示访问许可权。当 SourceFile 的父目录是可写的并且有粘性位设置,以下的一个或多个条件为真:
- 用户必须拥有文件。
- 用户必须拥有目录。
- 用户必须是特权用户。
- 文件对用户必须是可写的。
此警告消息和输入提示可通过使用 -f 选项覆盖。
可以使用 mv 命令在相同的文件系统或文件系统之间移动文件。不管是在一个文件系统中工作,还是跨文件系统工作,mv 命令把文件拷贝到目标处并删除原文件。 mv 命令在新文件中保存最新数据修改的时间、最新访问时间、用户标识、组标识和原始文件的文件方式。对于符号链路,mv 命令仅保存该链路本身的所有者和组。
如果不能保存所有者和组标识,mv 命令清除目标中的 S_ISUID 和 S_ISGID 位。如果不能清除这些位,即使退出代码无效,mv 命令把诊断消息打印到标准错误中。
如果命令过早地终止,mv 命令或者修改源文件或者修改目的路径。
注: mv 命令支持把 --(短划线,短划线)参数当作定界符,表示标志的结束。
标志提示:mv 命令可以覆盖许多现有文件,除非指定了 -i 标志。-i 标志提示您在覆盖文件前先确认。如果 -f 和 -i 标志进行组合指定,则最后指定的标志占优。 -E | -E 选项需要下列参数之一。如果省略 -E 选项,warn 是缺省行为。 force 如果文件的固定范围大小或者空间保留无法保存,则对文件的 mv 操作失败。 ignore 在保存范围属性时忽略任何错误。 warn 如果文件的空间保留或者固定范围大小无法保存就发出警告。 | -f | 在覆盖现有文件之前不提示。 | -i | 移动文件或目录到现有的路径名称之前进行提示,通过后跟问号显示文件名。如果您以 y 或语言环境中 y 的相等物开始的一行应答,移动就继续。其它任何应答都阻止移动发生。 |
示例
要重命名文件,输入:
mv appendix apndx.a该命令把 appendix 重命名为 apndx.a。如果命名为 apndx.a 的文件已存在,它的旧内容将由 appendix 的内容替换。
要移动目录,输入:
mv book manual如果 manual 存在,该命令把 book 下的所有文件和目录都移动到命名为 manual 的目录。否则,目录 book 重命名为 manual。
要把文件移动到另一个目录下并且给它新的名称,输入:
mv intro manual/chap1该命令把 intro 移动到 manual/chap1。把名称 intro 从当前目录下删除,且相同的文件在目录 manual 中作为 chap1 出现。
要把文件移动到另一个目录,保持相同的名称,输入:
mv chap3 manual该命令把 chap3 移动到 manual/chap3。
注:例 1 和例 3 命名了两个文件,例 2 命名了两个现有目录,而例 4 命名了一个文件和一个目录。
要把多个文件移动到另一个目录,输入:
mv chap4 jim/chap5 /home/manual该命令把 chap4 文件移动到 /home/manual/chap4 文件目录,并且把 jim/chap5 文件移动到 /home/manual/chap5 文件。
要使用带模式匹配字符的 mv 命令,输入:
mv manual/* 。该命令把 manual 目录中的全部文件都移动到当前目录中。(period),保留它们在 manual 中的名称。此移动也清空 manual。必须在星号和周期之间输入空格。
注:模式匹配字符仅扩展现有文件的名称。例如,如果文件 manual/chap1 不存在,命令 mv intro man*/chap1 不起作用。 退出状态
文件
|