MySQL社区

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 7905|回复: 1
打印 上一主题 下一主题

[Linux命令] mv命令详解及举例

[复制链接]
跳转到指定楼层
1#
发表于 2008-2-1 10:58:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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 不起作用。
退出状态
0所有输入文件移动成功。
>0发生错误。

文件

/usr/bin/mv包含 mv 命令。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享淘帖 顶 踩
2#
发表于 2008-3-26 09:16:50 | 只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|申请友链|小黑屋|Archiver|手机版|MySQL社区 ( 京ICP备07012489号   
联系人:周生; 联系电话:13911732319

GMT+8, 2024-5-4 13:07 , Processed in 0.083036 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表