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。