linux中所有剪切与重命名操作均由mv命令完成:同文件系统内仅修改目录项,瞬间完成;跨文件系统则转为复制+删除;目标为目录时执行移动,为目标文件时执行重命名,支持-i、-n、-b等安全选项防止误覆盖。

Linux 中没有独立的“剪切”命令,所有剪切操作都由 mv 命令完成。它本质是移动(move),即把文件从原位置移走、放到新位置——这等同于图形界面中的“剪切+粘贴”。重命名也是 mv 的同一行为,只是目标路径和源路径在同一个目录下。
移动单个文件到另一个目录
这是最常用的剪切场景:把文件从 A 路径移到 B 目录中,保留原名。
- 目标目录必须已存在,否则系统会误判为重命名,报错“目标不是目录”
- 命令格式:mv 源文件路径 目标目录路径/
- 示例:
mv ~/Downloads/report.pdf ~/Documents/—— 将 report.pdf 移入 Documents 文件夹 - 执行后,原路径的文件消失,目标目录中出现同名文件
移动同时改名(跨目录重命名)
一边移动、一边换名字,适合归档、版本更新或整理命名规范。
- 关键点:目标参数必须包含完整路径 + 新文件名(不能以 / 结尾)
- 命令格式:mv 源文件路径 目标完整路径/新文件名
- 示例:
mv /var/log/syslog /backup/syslog_20261008.log - 注意:如果 /backup/ 下已有同名文件,默认会直接覆盖,需加安全选项控制
移动多个文件到同一目录
批量剪切时效率更高,避免重复输入目标路径。
- 所有源文件列在前面,目标必须是已存在的目录(末尾带 / 更清晰,但非必需)
- 命令格式:mv 文件1 文件2 文件3 ... 目标目录/
- 示例:
mv *.txt *.md /home/user/notes/—— 把当前目录所有 .txt 和 .md 文件移入 notes 目录 - 若目标目录不存在,命令失败并提示 “target is not a directory”
安全移动:避免误覆盖
默认 mv 会静默覆盖同名文件,加选项可提升操作安全性。
- -i:交互式。覆盖前询问,输入 y 才继续(推荐日常使用)
- -n:不覆盖。目标已存在时跳过,不报错也不移动
- -b:自动备份。覆盖前把原目标重命名为 原名~(如 config.conf → config.conf~)
- 组合使用也有效,例如:
mv -ib old.conf /etc/new.conf











