011 mv命令

命令说明

mv(move)用于移动文件/目录或重命名,同一目录内移动即为改名。与 cp 不同,mv 不复制数据,只改变路径,速度快且原文件不再保留。

语法

mv [选项]... 源文件 目标文件
mv [选项]... 源文件... 目标目录

常用参数

参数说明
-i覆盖前提示确认
-f强制覆盖,不提示(会屏蔽 -i 别名)
-n不覆盖已存在的文件
-u只在源文件更新或目标不存在时才移动
-v显示移动过程
-b覆盖前先备份目标文件
-t 目录指定目标目录,便于配合 xargs 批量移动

使用示例

$ mv a.txt b.txt

把 a.txt 重命名为 b.txt

$ mv a.txt /data/

把 a.txt 移动到 /data/ 目录

$ mv *.log /archive/

把所有 .log 文件移动到归档目录

$ mv /opt/app /opt/app2

重命名目录

$ mv -i old.conf /etc/app/

移动并在覆盖时提示确认

$ mv -v file1 file2 file3 /backup/

显示过程并把多个文件移入 /backup/

$ find . -name "*.tmp" | xargs -I{} mv {} /tmp/junk/

批量移动匹配文件

实用技巧

  • mv 在同一文件系统内是改目录项(瞬间完成);跨文件系统移动则等价于复制+删除,大文件会较慢。
  • 很多发行版默认 alias mv="mv -i",脚本中要静默覆盖用 \mv 或 command mv。
  • 误删无法恢复:mv 覆盖同名文件后原内容即丢失,重要操作先 cp 备份或用 mv -b。