mv 的安全选项:-i、-n 与 -b 覆盖前备份
用 mv -i、mv -n 和 --backup 避免 Linux 下移动重命名文件时悄悄覆盖已有文件。
mv -i 在每次覆盖前询问,mv -n 直接跳过已存在的目标,mv -b --backup=numbered 会在覆盖前留下编号备份。
01命令
命令
$ mv -i -n source.txt target/ && mv -b --backup=numbered a.cfg b.cfg02作用说明
mv 默认静默且不可逆:目标路径写错就会直接覆盖已有文件,没有确认也没有回收站。-i 会在覆盖前逐个提示,-n 则完全不覆盖,--backup=numbered 会把被覆盖的文件改名为类似 target.~2~ 的备份名。很多发行版在交互 shell 中把 mv 别名成了 mv -i,导致脚本和终端行为不一致——这是常见的坑。
03风险
!注意: 这些选项属于 GNU 扩展,在精简的 POSIX 系统上只有 -i 是保证可用的。
04撤销
✓无需撤销——该命令不会改变持久状态。
05来源
- mv(1) — Arch Linux manual依据: Documents -i (prompt before overwrite), -n (no clobber), and --backup[=CONTROL] including numbered backups
- mv(1P) — POSIX manual page依据: POSIX specifies that mv overwrites destination files unless -i is given
最后验证: 2026-09-17 · 分类: 文件与文件夹