Linux 命令:mv

Linux mv 命令详细教程

  • mv(move 的缩写)是 Linux 系统中用于移动或重命名文件/目录的核心命令。它功能灵活,既可以将文件从一个位置转移到另一个位置,也可以直接修改文件或目录的名称,且操作效率高(移动同一分区内的文件时,仅修改文件名,不复制数据)。
  • 资料已经分类整理好:https://pan.quark.cn/s/26d73f7dd8a7
一、基本语法
mv [选项] 源文件/目录 目标文件/目录
  • 核心作用
    • 若源和目标在同一目录:执行重命名操作。
    • 若源和目标在不同目录:执行移动操作。
  • 多源处理:可同时移动多个文件/目录,此时目标必须是目录(所有源会被移动到该目录下)。
二、常用选项
选项功能描述
-i交互式操作,若目标文件已存在,会提示“是否覆盖”(防止误操作,推荐常用)
-f强制操作,若目标文件已存在,直接覆盖且不提示(慎用,可能覆盖重要文件)
-v显示操作过程(verbose,详细输出移动/重命名的步骤)
-n不覆盖已存在的文件(no-clobber,若目标存在则跳过,不提示)
-u仅当源文件比目标文件新,或目标不存在时才执行移动/重命名
三、实际操作示例
1. 重命名文件/目录

对同一目录下的文件或目录进行重命名:

# 重命名文件
mv old_file.txt new_file.txt

# 重命名目录
mv old_dir/ new_dir/
  • 若目标名称已存在(且为文件),不加选项时会直接覆盖(默认行为因系统配置而异,部分系统默认带 -i 提示)。
2. 移动文件到指定目录

将文件 doc.txt 移动到 documents/ 目录下(documents 必须存在,否则会重命名为文件):

mv doc.txt documents/
  • 移动后,源文件在原位置消失,出现在目标目录中。
3. 移动多个文件到目录

file1.txtfile2.jpgnotes/ 目录同时移动到 backup/ 目录:

mv file1.txt file2.jpg notes/ backup/
  • 确保 backup/ 是已存在的目录,否则会报错(多源目标必须为目录)。
4. 交互式避免覆盖

当目标文件已存在时,通过 -i 选项确认是否覆盖(避免误删重要文件):

mv -i report.txt docs/
# 若 docs/report.txt 已存在,会提示:mv: 是否覆盖 'docs/report.txt'? 
# 输入 y 覆盖,n 取消
  • 大多数 Linux 系统默认将 mv 别名设置为 mv -i,直接输入 mv 也会触发提示。
5. 强制覆盖文件

若确认需要覆盖目标文件且不想被提示,使用 -f 选项(谨慎使用):

mv -f old_data.csv data/
# 若 data/old_data.csv 存在,直接覆盖,无任何提示
6. 不覆盖已有文件

通过 -n 选项确保不会覆盖目标中已存在的文件(适合批量移动时保留现有文件):

mv -n *.txt archive/
# 若 archive/ 中已有同名 .txt 文件,这些文件会被跳过,仅移动不存在的文件
7. 仅移动更新的文件

使用 -u 选项,只移动比目标文件更新(修改时间更新)的源文件,或目标中不存在的文件:

mv -u ~/Downloads/*.pdf ./docs/
# 仅当 Downloads 中的 pdf 比 docs 中的新,或 docs 中没有该 pdf 时,才移动
8. 显示移动过程

通过 -v 选项查看详细操作步骤(适合确认是否移动了预期的文件):

mv -v fileA.txt fileB.jpg folder/
# 输出示例:
# 'fileA.txt' -> 'folder/fileA.txt'
# 'fileB.jpg' -> 'folder/fileB.jpg'
四、特殊场景说明
  1. 跨分区移动文件
    若源和目标在不同磁盘分区,mv 会先复制文件内容到目标位置,再删除源文件(与 cp + rm 效果类似,但由命令自动完成)。

  2. 移动目录到另一个目录
    例如将 dir1 移动到 dir2 中(dir2 必须存在):

    mv dir1/ dir2/
    # 结果:dir2/ 下会新增 dir1/ 及其所有内容
    
  3. 避免误操作的技巧

    • 移动前用 ls 确认源文件/目录是否正确。
    • 对重要文件操作时,优先使用 -i 选项。
    • 批量移动时,可先用 mv -vn 预览效果(-n 确保不实际操作,-v 显示预期结果)。
五、注意事项
  • 权限问题:移动文件到受限目录(如 /root)时,需用 sudo 提升权限,否则会提示“权限不够”。
  • 软链接影响:移动软链接文件时,仅修改链接本身的位置,不影响其指向的源文件;若移动软链接的源文件,软链接会失效(需重新创建)。
  • 目录非空时的覆盖:若目标是目录且非空,移动源目录到目标时,源目录会被放入目标中,而非覆盖目标内容(例如 mv a/ b/ 会生成 b/a/)。

mv 命令是 Linux 日常操作中高频使用的工具,掌握其选项和场景能大幅提升文件管理效率,同时需注意避免因误操作导致的数据丢失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值