在 Linux 系统中,文件与目录的管理是日常操作的核心。而 mv
命令(英文为 move 的缩写)就是其中最常用的工具之一,用于“移动”文件或“重命名”文件。别看它功能简单,理解得透彻,你会发现它背后的逻辑非常优雅。
一、mv
命令的基本语法
mv [选项] 源文件或目录 目标文件或目录
根据目标的不同,mv
的作用也不同:
- 重命名文件或目录:当目标是一个文件名或不存在的目录名时
- 移动文件或目录:当目标是一个已存在的目录时
二、基本用法举例
1. 重命名文件或目录
mv old.txt new.txt
这条命令将 old.txt
重命名为 new.txt
。
mv old_dir new_dir
将目录 old_dir
改名为 new_dir
。
2. 将文件移动到指定目录
mv file.txt /home/user/Documents/
这会将 file.txt
移动到 /home/user/Documents/
目录中。
3. 同时移动多个文件到某个目录
mv file1.txt file2.txt file3.txt /home/user/Documents/
这会将多个文件批量移动到目标目录。
三、常用选项解析
选项 | 含义 |
---|---|
-i |
交互模式。如果目标文件存在,会提示是否覆盖 |
-f |
强制覆盖,不提示(默认行为) |
-n |
不覆盖已有文件(No clobber) |
-v |
显示每一步操作(verbose) |
示例:
mv -i important.txt backup/
如果 backup/important.txt
已存在,会询问你是否覆盖。
mv -vn *.txt /data/
将所有 .txt
文件移动到 /data/
,如果文件存在则跳过,并显示操作过程。
四、注意事项
- 移动操作是原子性的
在同一文件系统下,mv
是“快速”的——它只是更新文件系统的元数据。但跨分区移动时,mv
会变成“复制+删除”,速度会慢很多。 - 覆盖风险
默认情况下,mv
不会警告你覆盖已有文件。这是为什么我们常加-i
或-n
。 - 目录必须存在
移动到某个目录时,确保目标目录已创建。可以用mkdir -p
提前建立目录结构。
五、进阶用法:结合通配符和变量
利用 mv
快速批量重命名:
for file in *.txt; do
mv "$file" "${file%.txt}.bak"
done
将所有 .txt
文件改为 .bak
结尾。
六、总结
操作 | 示例 |
---|---|
重命名文件 | mv old.txt new.txt |
移动文件 | mv file.txt /path/to/dir/ |
批量移动 | mv *.log /var/logs/ |
覆盖提示 | mv -i file.txt dest/ |
不覆盖 | mv -n file.txt dest/ |
mv
是一个简单而强大的工具。在日常工作中,掌握它的各种技巧和用法,能大大提升你对 Linux 系统的掌控力。
如果你喜欢这样的 Linux 命令系列解析,欢迎关注本博客,我们将持续推出更多易懂实用的 Linux 教程!
声明:本文为原创文章,版权归深谋之道所有,欢迎分享本文,转载请保留出处!