linux中重命名和移动目录均使用mv命令,本质是修改路径条目;目标为非目录时重命名,为目标目录时移动;需注意引号处理空格、斜杠误用、跨文件系统性能及批量操作安全测试。

在 Linux 中,移动文件和重命名目录都用同一个命令:mv。它不区分“移动”和“重命名”,本质是修改文件或目录在文件系统中的路径条目(dentry)。只要目标路径不是已存在的目录,就视为重命名;如果目标是已存在的目录,就视为移动。
基本重命名操作
重命名一个目录,只需把原目录名作为源,新目录名作为目标:
-
mv old_dir new_dir—— 将当前目录下的old_dir改名为new_dir -
mv /path/to/old /path/to/new—— 绝对路径下重命名,同样适用
注意:目标名称不能已存在(除非是空目录且你明确想覆盖),否则会报错或意外覆盖——加 -i 可交互确认:mv -i old_dir new_dir。
移动目录到其他位置
把整个目录搬进另一个已有目录中,就是移动:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
mv myproject /home/user/projects/—— 把myproject移入projects目录下 -
mv myproject /tmp/—— 搬到/tmp,原位置不再存在
目标路径末尾的斜杠不是必需的,但若目标是文件(而非目录),加上斜杠会报错,所以建议确保目标是真实存在的目录。
安全与常见避坑
这些细节容易导致失败或误操作:
- 含空格或特殊字符的目录名,务必用引号包裹:
mv "My Project" project_new - 不要写成
mv dir1 dir2/(末尾加斜杠)——除非你确定dir2是个目录;否则会提示“Not a directory” - 跨文件系统移动(如从
/home到/mnt/usb)时,mv自动转为“复制 + 删除”,耗时较长,但行为一致 - 想保留原目录并复制一份?那该用
cp -r,不是mv
批量重命名多个目录(进阶)
mv 本身不支持一次改多个不同名字(比如 dir1→test_01, dir2→test_02),但可通过循环或 find 配合实现:
- 简单统一加前缀:
for d in dir*; do [ -d "$d" ] && mv "$d" "backup_$d"; done - 用
find安全处理(推荐):find . -maxdepth 1 -type d -name "temp_*" -exec mv {} backup_{} \;
注意:执行前建议先用 echo 测试命令逻辑,例如把 mv 换成 echo mv 看输出是否符合预期。










