mv 是“move”的缩写,中文意思是“移动”。你可以把它理解为文件的“搬家”工具,既能用来移动文件,也能用来给文件改名。它和 cp(复制)命令最大的区别在于:cp 是克隆文件,会让文件变多;而 mv 只是把文件从一个地方挪到另一个地方,文件总数不会增加。特别需要注意的是,如果你在同一个文件夹里对自己使用 mv 命令,实际上就是在给文件“重命名”。 | 在覆盖目标文件之前,自动为其创建一个备份文件 | | 强制覆盖目标文件,不进行任何提示 |
| 在覆盖目标文件前进行询问确认 | | 不要覆盖已有文件 |
| 仅在源文件比目标文件更新时才执行移动操作 | | 显示命令执行的详细过程 |
| | | |
1. 移动单个文件到指定目录
将 access.log 移动到 /var/log/archive/ 目录下:
[root@ChachiNet ~]# mv access.log /var/log/archive/
将 /tmp/temp_data 目录移动到 /data 目录下:[root@ChachiNet ~]# mv /tmp/temp_data /data/
将 file1.txt、file2.conf 和 dir3 目录一起移动到 /backup 目录:[root@ChachiNet ~]# mv file1.txt file2.conf dir3 /backup/
将 old_config.conf 改名为 new_config.conf:[root@ChachiNet ~]# mv old_config.conf new_config.conf
将 app.log 移动到 logs/ 目录,并改名为 app-2026.log:[root@ChachiNet ~]# mv app.log logs/app-2026.log
6. -i参数:覆盖前询问确认(强烈推荐日常使用)如果目标位置已有同名文件,系统会提示你是否覆盖,防止误操作:[root@ChachiNet ~]# mv -i source.txt /target/source.txt
如果目标位置已经有同名文件,则直接跳过,不进行任何覆盖操作:[root@ChachiNet ~]# mv -n source.txt /target/source.txt
8. -f参数:强制覆盖
如果目标文件存在且无法打开,会尝试删除目标文件后再移动。慎用此参数,因为它会无提示直接覆盖,极易导致重要数据丢失:
[root@ChachiNet ~]# mv -f new.conf /etc/config.conf
1. 处理带有空格或特殊字符的文件名时,记得用双引号将文件名包裹起来,例如 mv "my file.txt" "my_new_file.txt"。2. 为了避免日常误覆盖重要文件,建议在系统的 .bashrc 配置文件中添加别名 alias mv='mv -i',这样每次执行 mv 时都会默认开启询问确认模式。