pwd移动或者重命名文件
命令语法格式
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
命令描述
如果给出两个文件名,则mv将第一个文件移动到第二个文件。如果给出了–target-directory(-t)选项,则mv将每个SOURCE移动到目录DEST中,SOURCE的名字保持不变,或者如果最后是一个目录,并且没有给出–no-target-directory(-T)选项则失败。
mv可以将任何类型的文件从一个文件系统移动到另一个文件系统。在fileutils 4.0之前,mv只能在文件系统之间移动常规文件。例如,现在mv可以将包括特殊设备文件的整个目录层次结构从一个分区移动到另一个分区。它首先复制文件(复制使用的是一些与cp -a用来复制目录和文件相同代码),然后(假设复制成功)它将删除原始文件。如果复制失败,则将复制到目标分区的部分删除。如果要将三个目录从一个分区复制到另一个分区,并且第一个目录的副本成功,但第二个目录的副本不成功,则第一个目录将保留在目标分区上,第二个和第三个目录将保留在原始分区上。
mv会试图复制扩展属性(xattr),其中可能包括SELinux上下文,ACL,Capability。一旦发生故障,会产生’Operation not supported’警告。
如果目标文件存在但通常不可写,标准输入是终端,并且未给出-f或–force选项,则mv会提示用户是否替换该文件。(你可能拥有该文件,或对其目录拥有写入权限。)如果用户的响应不是肯定的,则会跳过该文件。
警告:当SOURCE可能是指向目录的符号链接时,在SOURCE名中避免使用尾部斜线。否则,mv可能会做一些非常令人惊讶的事情,因为它的行为取决于底层的rename系统调用。在具有现代Linux内核的系统上,它会因errno=ENOTDIR而失败。但是,在其他系统上(至少FreeBSD 6.1和Solaris 10),它不会重命名符号链接,而是重命名符号链接引用的目录。请参阅尾部斜杠。
注意:mv只会替换目标中的空目录。相互冲突的填充目录会被跳过,并产生诊断信息。
命令支持的选项及含义
-b, –backup[=method]
备份每个可能被覆盖或删除的文件。参阅备份选项。
-f, –force
删除DEST之前不要提示用户。如果指定了多个-i,-f,-n选项,则只有最后一个生效。
-i, –interactive
提示是否覆盖每个现有DEST,而不考虑其权限。如果用户的响应不是肯定的,则跳过该文件。如果指定了多个-i,-f,-n选项,则只有最后一个生效。
-n, –no-clobber
不要覆盖现有的DEST。如果指定了多个-i,-f,-n选项,则只有最后一个生效。此选项与-b或–backup选项互斥。
-u, –update
如果DEST文件已经存在,并且时间戳与现有文件相同或更新,则不要进行移动。如果移动跨越文件系统边界,则将SOURCE的时间戳截断到与DEST相同的精度进行比较,使用更新时间;如果在相同的SOURCE和DEST中需要执行多次mv,那么’mv -u’命令可以避免重复的工作。
-v, –verbose
在移动SOURCE之前,打印每个的名称。
–strip-trailing-slashes
从每个SOURCE参数中删除任何结尾的斜线。请参阅尾部斜杠。
-S suffix, –suffix=suffix
将suffix追加到使用-b生成的每个备份文件后面。参阅备份选项。
-t directory, –target-directory=directory
指定目标目录。请参阅目标目录。
-T, –no-target-directory
当最后一个操作数(DEST)是目录或是一个指向符号链接的目录时,不要特殊处理。请参阅目标目录。
-Z, –context
此选项的功能与restorecon命令类似,方法是根据目标文件和每个创建的目录的系统默认类型,调整SELinux安全上下文。
相关手册
rename(2)
查看在线手册:http://www.gnu.org/software/coreutils/mv
查看info手册:info ‘(coreutils) mv invocation’
参考文献
- man 1 mv, version GNU coreutils 8.28
更新日志
- 06/17/2018 创建文章