在Linux系统中,mv
是一个常用的命令行工具,全称为 move(移动),但它的功能不仅限于移动文件/目录,还包括重命名操作。以下是详细说明:
移动文件/目录
将源文件或目录移动到目标路径(跨目录):
mv 源文件 目标路径/
示例:
mv file.txt /home/user/documents/ # 将file.txt移动到documents目录
重命名文件/目录
当目标路径与原路径在同一目录时,即为重命名:
mv 旧文件名 新文件名
示例:
mv old.txt new.txt # 将old.txt重命名为new.txt
选项 | 说明 |
---|---|
-i |
交互模式(覆盖前提示确认) |
-f |
强制覆盖(不提示) |
-n |
禁止覆盖已存在文件 |
-v |
显示详细操作过程 |
-u |
仅当源文件比目标文件新时移动 |
示例:
mv -i file.txt backup/ # 移动时若冲突会提示
mv -v *.log /var/log/ # 显示移动的详细信息
覆盖风险:默认情况下,mv
会直接覆盖目标路径中的同名文件(无警告)。
建议重要操作搭配 -i
选项或使用 alias mv='mv -i'
添加到 ~/.bashrc
中。
跨设备移动:如果目标路径在不同文件系统(如从硬盘到U盘),mv
实际会先复制再删除源文件,相当于 cp + rm
。
目录操作:移动目录时无需 -r
选项(与 cp
不同),直接操作即可:
mv dir1/ dir2/ # 将dir1移动到dir2(若dir2存在,则dir1会成为dir2的子目录)
# 重命名文件
mv report.doc report_final.doc
# 移动多个文件到目录
mv *.jpg ~/pictures/
# 避免覆盖已有文件
mv -n data.db /backup/
# 仅更新较新的文件
mv -u *.csv /mnt/archive/
cp
的区别mv
:物理移动数据(同一设备)或复制+删除(跨设备),原文件不再保留。cp
:始终复制数据,保留原文件。掌握 mv
命令能高效管理文件位置和命名,是Linux文件操作的基础技能之一。