约 5994 字

约 30 分钟

#Bash 的 mv 命令

mv [OPTION]... SOURCE... DIRECTORY

功能

移动(或重命名)文件。

类型

可执行文件(/usr/bin/mv),属于 coreutils。

参数

  • OPTION 选项:
    • --backup[=CONTROL] - 选中怎样备份被覆盖的目标文件
    • -b - 备份被覆盖的目标文件
    • --debug - 输出调试信息(文件的复制方式)
    • -f, --force - 强制操作,目标存在且无法打开时会尝试将其删除
    • -i, --interactive - 覆盖前提示
    • -n, --no-clobber - 不覆盖现有文件,也不失败
    • --no-copy - 重命名失败时不复制文件
    • --strip-trailing-slashes - 删除每个 SOURCE 尾部的 /
    • -S, --suffix=SUFFIX - 设置备份文件的后缀
    • -t, --target-directory=DIRECTORY - 指定目标目录
    • -T, --no-target-directory - 将 DEST 视为文件(如果 DEST 是目录,则进行合并而非移动到它内部)
    • --update[=UPDATE] - 控制哪些现有文件需要更新;取值:all, none, older
    • -u - 仅在源文件比目标新的时候复制;同 --update[=older]
    • -v, --verbose - 输出详细信息(进行的全部操作)
    • -Z - 将目标文件的 SELinux 安全上下文设为默认类型
    • --help - 显示帮助
    • --version - 显示版本
  • SOURCE - 源文件列表
  • DEST - 目标路径

#示例

移动文件

$ ls                            # 空目录下操作
$ touch src.txt                 # 创建文件
$ ls
src.txt
$ mv src.txt dest.txt           # 重命名文件
$ ls
dest.txt
$ mkdir dir                     # 创建目录
$ mv src.txt ./dir              # 移动到目录中
$ ls dir
src.txt

移动目录

$ mkdir src dest1 dest2         # 创建目录
$ touch src/1.txt               # 创建文件
$ tree src
src
└── 1.txt
$ mv src dest1                  # 将 src 移动到 dest1 内部
$ tree dest1
dest1
└── src
    └── 1.txt
$ mv -T dest1 dest2             # 移动 dest1 合并到 dest2
$ tree dest2
dest2
└── 1.txt

#相关命令

命令说明
cp复制文件
ln链接文件

#推荐阅读

#手册

更新: 2026/1/18

作者: PlanC

创建: 2025/10/27