mv(移动)
100%

命令行 · 第 11 课

mv(移动)

学习重命名和移动文件或目录,并避免意外覆盖。

mv 命令用于重命名文件或目录,或将其移到其他位置。与 cp 不同,移动成功后不会把原路径留在原处。

基本语法是:

mv [OPTIONS] SOURCE DESTINATION

重命名文件和目录

mv 最常见的用途之一是重命名。语法很简单:指定旧名称和新名称。

重命名文件:

$ mv oldfile newfile

同样的逻辑适用于重命名目录:

$ mv old_directory_name new_directory_name

哪个命令会把当前目录中的 cat 重命名为 dog

把条目移动到目录

mv 命令的另一个核心功能是将项目从一个位置移动到另一个位置。

将单个文件移动到不同目录:

$ mv file2 /home/pete/Documents

你也可以一次移动多个文件。只需列出所有源文件,后跟目标目录:

$ mv file_1 file_2 somedirectory/

在 GNU/Linux 系统上,一个有用的选项是 -t,它允许你先指定目标目录。当移动许多文件时,这样更清晰。

$ mv -t somedirectory/ file_1 file_2

cp 命令不同,移动目录不需要递归选项。mv 默认支持目录。

哪个命令会把 file_1file_2 都移动到现有的 archive/ 目录?

控制现有目标

默认情况下,如果你将文件移动到一个已存在同名文件的目标位置,mv 会直接覆盖而不提示。为了防止意外数据丢失,你可以使用以下选项:

  • -i(交互式):这是一个重要的安全功能。它会在覆盖任何已有文件前提示你确认。

    $ mv -i source_file destination_directory
    
  • -n(不覆盖):不覆盖现有目标。

    $ mv -n source_file destination_directory
    
  • -b(备份):在 GNU/Linux 上,为本来会被替换的目标创建备份。默认备份后缀通常是波浪号(~)。

    $ mv -b file1 directory_with_file1
    
  • -v(详细):此选项使 mv 命令打印出正在执行的操作,显示每个被移动或重命名的文件。

$ mv -v file1 file2 somedirectory/

哪个命令只会在不覆盖现有目标的情况下把 draft.txt 移入 finished/

移动目录和通配符匹配项

移动目录不需要 -r

$ mv project /home/pete/Documents/

shell 通配符可以选择多个源:

$ ls *.txt
$ mv *.txt notes/

ls 预览匹配项,可以在修改多个路径前发现过于宽泛的模式。

哪个命令会把 project/ 目录移动到 /srv/archive/

你准备运行 mv *.txt notes/。哪个命令会预览相同通配符选中的路径?

要练习移动和重命名条目,可以尝试以下动手实验:

  1. Linux mv 命令:文件移动与重命名 - 练习使用 mv 命令移动和重命名文件及目录,理解其各种选项和行为。
  2. 组织文件和目录 - 在实际挑战中应用 mv(以及 cprm)知识,整理项目结构,移动文件并清理目录。

课程已完成

你已完成 mv(移动)

现在,你可以重命名和移动文件或目录,同时保护现有目标。

  • 把源放在新的目标路径之前。

  • 把目标目录放在多个源之后。

  • 替换目标前选择询问、跳过或备份。

  • 无需递归选项即可移动目录。

  • 批量移动前预览通配符匹配项。

保存学习进度

创建免费账户即可保存本课进度,并在任意设备上继续学习。

创建免费账户
下一节
返回 命令行