Linux中的mv命令
作用用于移动文件或目录或者重命名的命令。与cp命令不同mv命令操作后源文件会消失mv [选项] 源文件 目标文件 mv [选项] 源文件... 目标目录场景本质速度同一文件系统内移动只修改文件名/路径指针极快瞬间完成跨文件系统移动先复制数据再删除源文件慢取决于文件大小重命名同文件系统内的特殊移动极快选项完整写法说明-i--interactive交互模式覆盖前提示确认-f--force强制覆盖不提示-n--no-clobber不覆盖已存在的文件-u--update只有源文件比目标新时才移动-v--verbose显示详细移动过程-b--backup覆盖前自动备份目标文件-t--target-directory指定目标目录参数顺序调换基础用法示例1.重命名文件或目录最常用[rootmaster /]# ls bin boot data demo01 dev etc home lib lib64 media mnt opt parent proc Projects root run sbin srv sys Tests tmp usr var [rootmaster /]# cd Tests [rootmaster Tests]# ls myfile1.txt SubTests test1.txt test2.txt test3.txt [rootmaster Tests]# cat test1.txt test2.txt test3.txt 2026年4月25日01点18分 2026年4月25日01点18分 2026年4月25日01点18分 [rootmaster Tests]# cat test1.txt 2026年4月25日01点18分 [rootmaster Tests]# cat test2.txt 2026年4月25日01点18分 [rootmaster Tests]# cat test3.txt 2026年4月25日01点18分 [rootmaster Tests]# mv test1.txt file01.txt # 重命名文件 [rootmaster Tests]# ls file01.txt myfile1.txt SubTests test2.txt test3.txt [rootmaster Tests]# cat file01.txt 2026年4月25日01点18分2.移动文件到指定目录[rootmaster Tests]# mv file01.txt ./SubTests # 移动单个文件到指定目录 [rootmaster Tests]# ls SubTests file01.txt [rootmaster Tests]# cat SubTests/file01.txt 2026年4月25日01点18分 [rootmaster Tests]# mv test2.txt test3.txt SubTests/ # 移动多个文件到指定目录 [rootmaster Tests]# ls SubTests file01.txt test2.txt test3.txt[rootmaster Tests]# mv file01.txt ./Sub # 由于前面已经将file01.txt移动到./SubTests这个目录下了所以当前目录下就没有这个文件了因此会报错 mv: cannot stat ‘file01.txt’: No such file or directory [rootmaster Tests]# ls # 从ls结果看出确实file01.txt消失了 myfile1.txt SubTests [rootmaster Tests]# cd SubTests/ [rootmaster SubTests]# ls file01.txt test2.txt test3.txt [rootmaster SubTests]# mv file01.txt ../Sub [rootmaster SubTests]# cd .. [rootmaster Tests]# ls myfile1.txt Sub SubTests [rootmaster Tests]# ls -l Sub # 本来想创建一个Sub目录的但是在mv命令中只能新建不存在的文件不能新建目录 -rw-r--r--. 1 root root 27 Apr 25 01:18 Sub [rootmaster Tests]# cat Sub 2026年4月25日01点18分[rootmaster Tests]# ls myfile1.txt Sub SubTests [rootmaster Tests]# ls SubTests test2.txt test3.txt [rootmaster Tests]# mv SubTest/test2.txt ./Sub/ # 确信了如果要移动到指定的目录下那么这个目录就要先存在 mv: failed to access ‘./Sub/’: Not a directory3.移动目录[rootmaster Tests]# ls myfile1.txt Sub SubTests [rootmaster Tests]# mkdir S [rootmaster Tests]# ls myfile1.txt S Sub SubTests [rootmaster Tests]# ls S [rootmaster Tests]# mv SubTests S # 移动目录不需要-r参数mv命令自带递归移动效果 [rootmaster Tests]# ls myfile1.txt S Sub [rootmaster Tests]# ls S SubTests [rootmaster Tests]# ls S/SubTests/ test2.txt test3.txt