mv · 移动/重命名文件
上游:cp(cp 留副本,mv 搬走原件)· ls(移动前确认文件存在) 下游:tar(mv 单文件,tar 打包整个目录)· find(找到文件后再 mv)
一句话是什么
mv 移动文件到新位置,或者给文件改名——
两个功能用同一个命令。
为什么需要它
下载的 Bedrock Server 压缩包解压后,把文件夹整理到正确位置:
mv ~/Downloads/bedrock-server/ ~/mc-server/
# 搬到正确的地方了或者给脚本改个更清楚的名字:
mv start.sh start-mc.sh
# 改名了,原来的 start.sh 消失,只有 start-mc.sh核心用法
公式
mv 源文件 目标位置
mv 旧名字 新名字
常用命令
| 命令 | 说明 |
|---|---|
mv a.txt ~/backup/ | 把 a.txt 移入 backup 目录 |
mv a.txt b.txt | 把 a.txt 改名为 b.txt |
mv *.log ~/logs/ | 把所有 .log 文件移入 logs/ |
mv -i 源 目标 | 目标已存在时提示确认 |
mv -n 源 目标 | 目标已存在时不覆盖(skip) |
cp vs mv 核心区别
# cp:复制,原文件保留
cp a.txt b.txt
ls → a.txt b.txt # 两个都在
# mv:搬家,原文件消失
mv a.txt b.txt
ls → b.txt # 只剩改名后的文件Linux 笑话
Aaron 想把备份文件归档到正确目录,输入:
mv mc-worlds-20260420.tar.gz archive然后发现 archive 目录不存在,
Linux 就把文件改名成了 archive,没有移动!
ls
# archive ← 这其实是那个 tar.gz 文件,被改名了mv 到不存在的目录 = 改名,不是移动。
移动之前先 mkdir 建好目标目录,或者用 ls 确认目标存在。
例题精讲
📗 初探 Starter — 整理下载的服务器文件
# 解压后在 Downloads 里
ls ~/Downloads/
# bedrock-server-1.21/
# 移动到正确位置
mv ~/Downloads/bedrock-server-1.21/ ~/mc-server/
# 确认移过去了
ls ~/mc-server/
# bedrock_server server.properties worlds/ ...📘 应用 User — 批量整理日志
# 把散落的日志文件都移入 logs 目录
mkdir -p ~/logs
mv ~/mc-server/*.log ~/logs/
# 确认
ls ~/mc-server/*.log 2>/dev/null || echo "没有 .log 文件了"
ls ~/logs/📙 管理 Admin — 滚动备份归档
# 旧备份超过 30 天,移入归档目录(不删,只归档)
mkdir -p ~/mc-backups/archive/
# 用 find 找到旧文件,再 mv
find ~/mc-backups -name "*.tar.gz" -mtime +30 \
-exec mv {} ~/mc-backups/archive/ \;
# 确认归档
ls ~/mc-backups/archive/ | head -5官方文档参考
man mv # 完整手册
mv --help # 快速选项
mv 源 目标移动;目标是目录则移入,目标不存在则改名;-i防止意外覆盖;移动前先确认目标目录存在。
节点链接
上游
下游
实战
- shell-script ← 脚本里用 mv 整理日志、归档旧文件
节点版本:v1.0 · 2026-04-20 Tier 1 基础节点——Linux 的搬家公司