Skip to content

mv命令:移动或重命名文件和目录

1. 命令简介

mv 命令是 "move" 的缩写,用于移动文件或目录,也可以用来重命名文件和目录。它是 Unix 和类 Unix 系统中的基本命令之一。

2. 基本语法

Shell
mv [选项] 源文件 目标文件
mv [选项] 源文件... 目录

3. 常用选项

  • -i:交互模式,覆盖前提示
  • -f:强制移动,不提示(即使目标文件存在)
  • -v:详细模式,显示移动过程
  • -u:仅当源文件比目标文件新或目标文件不存在时才移动
  • -n:不要覆盖现有文件

4. 基础使用示例

  1. 移动文件:

    Shell
    mv file.txt /path/to/directory/
  2. 重命名文件:

    Shell
    mv oldname.txt newname.txt
  3. 移动多个文件到目录:

    Shell
    mv file1.txt file2.txt file3.txt /path/to/directory/
  4. 移动目录:

    Shell
    mv source_directory /path/to/destination/

5. 进阶使用技巧

  1. 仅移动更新的文件:

    Shell
    mv -u *.txt /path/to/backup/
  2. 移动文件并创建备份:

    Shell
    mv -b important.txt /path/to/new/location/
  3. 使用通配符移动多个文件:

    Shell
    mv *.jpg /path/to/photos/
  4. 移动隐藏文件:

    Shell
    mv .* /path/to/new/location/

6. 实用示例

  1. 移动文件到上级目录:

    Shell
    mv file.txt ../
  2. 批量重命名文件:

    Shell
    for f in *.html; do mv "$f" "${f%.html}.php"; done

    这会将所有 .html 文件重命名为 .php 文件。

  3. 移动除了某些文件之外的所有文件:

    Shell
    mv !(file1|file2) /path/to/destination/

    注意:这需要启用 extglob。

7. 注意事项

  • 移动文件到不同的文件系统可能需要更长时间,因为这实际上是复制后删除的过程。
  • 在脚本中使用 mv 时,最好加上错误检查。
  • 移动大量文件时,考虑使用 rsync 命令,它提供更多的控制和恢复选项。

8. 相关命令

  • cp:复制文件和目录
  • rm:删除文件或目录
  • rsync:高级文件传输工具

9. 技巧与建议

  1. 使用 mv 重命名文件时,可以利用 bash 的花括号扩展:

    Shell
    mv file.{txt,bak}

    这会将 file.txt 重命名为 file.bak。

  2. 在移动重要文件之前,可以先创建备份:

    Shell
    cp important_file.txt{,.bak} && mv important_file.txt /new/location/
  3. 使用 --strip-trailing-slashes 选项可以确保目标路径中不包含尾随斜杠:

    Shell
    mv source_dir --strip-trailing-slashes /path/to/destination

mv 命令是文件管理的基本工具之一,它结合了移动和重命名的功能。熟练使用它可以帮助你更有效地组织文件系统。记住,虽然 mv 命令操作简单,但在处理重要数据时仍需谨慎,特别是在不同文件系统之间移动文件时。