Linux 中的 mv 命令:7 个基本示例

mv 是 Linux 中必须知道的命令之一。 mv 代表移动,本质上用于将文件或目录从一个位置移动到另一个位置。

语法类似于 Linux 中的 cp 命令,但是这两个命令之间有一个根本区别。

您可以将 cp 命令视为复制粘贴操作。 而 mv 命令可以等同于剪切粘贴操作。

这意味着当您对文件或目录使用 mv 命令时,文件或目录将移动到新位置,并且源文件/目录不再存在。 这就是剪切粘贴操作,不是吗?

cp 命令 = 复制和粘贴
mv 命令 = 剪切和粘贴

mv 命令也可用于重命名文件。 使用 mv 命令相当简单,如果您学习一些选项,它会变得更好。

mv 命令的 7 个实例

让我们看看 mv 命令的一些有用示例。

1.如何将文件移动到不同的目录

第一个也是最简单的 example 是移动一个文件。 为此,您只需指定源文件和目标目录或文件。

mv source_file target_directory

此命令将移动 source_file 并将其放在 target_directory 中。

2.如何移动多个文件

如果要一次移动多个文件,只需将所有文件提供给移动命令,然后是目标目录。

mv file1.txt file.2.txt file3.txt target_directory

您还可以使用 glob 移动与模式匹配的多个文件。

为了 example 在上面 example,而不是单独提供所有文件,您还可以使用匹配所有扩展名为 .txt 的文件的 glob 并将它们移动到目标目录。

mv *.txt target_directory

3.如何重命名文件

mv 命令的一项基本用途是重命名文件。 如果您使用 mv 命令并在目标中指定文件名,则源文件将重命名为 target_file。

mv source_file target_directory/target_file

在上述 example,如果 target_fille 在 target_directory 中不存在,它将创建 target_file。

但是,如果 target_file 已经存在,它会在不询问的情况下覆盖它。 这意味着现有目标文件的内容将随着源文件的内容而改变。

我将在本教程后面向您展示如何使用 mv 命令覆盖文件。

您没有义务提供目标目录。 如果不指定目标目录,文件将被重命名并保存在同一目录中。

记住: 默认情况下,如果目标文件已经存在,mv 命令会覆盖。 可以使用 -n 或 -i 选项更改此行为,稍后解释。

4. 如何在 Linux 中使用 mv 命令移动目录

您也可以使用 mv 命令移动目录。 该命令与我们在移动文件中看到的相同。

mv source_directory target_directory

在上述 example,如果 target_directory 存在,则整个 source_directory 将移动到 target_directory 内。 这意味着 source_directory 将成为 target_directory 的子目录。

5.如何重命名目录

重命名目录与移动目录相同。 唯一的区别是目标目录必须不存在。 否则,整个目录将被移动到其中,就像我们在上一个目录中看到的那样。

mv source_directory path_to_non_existing_directory

6.如何处理移动时覆盖文件

如果您正在移动文件并且已经存在同名文件,则现有文件的内容将立即被覆盖。

这在所有情况下可能并不理想。 您有几个选项来处理覆盖情况。

为防止覆盖现有文件,您可以使用 -n 选项。 这样, mv 不会覆盖现有文件。

mv -n source_file target_directory

但也许你想覆盖一些文件。 您可以使用交互式选项 -i,它会询问您是否要覆盖现有文件。

mv -i source_file target_directory
mv: overwrite 'target_directory/source_file'?

您可以输入 y 覆盖现有文件或输入 n 不覆盖它。

还有一个用于进行自动备份的选项。 如果在 mv 命令中使用 -b 选项,它将覆盖现有文件,但在此之前,它将创建覆盖文件的备份。

mv -b file.txt target_dir/file.txt
ls target_dir
file.txt file.txt~

默认情况下,文件的备份以 ~ 结尾。 您可以使用 -S 选项并指定后缀来更改它:

mv -S .back -b file.txt target_dir/file.txt
ls target_dir
file.txt file.txt.back

您还可以使用更新选项 -u 在处理覆盖时。 使用 -u 选项,仅当源文件比现有文件新或目标目录中不存在源文件时,才会将源文件移动到新位置。

总结一下:

  • -i : 覆盖前确认
  • -n :不覆盖
  • -b :用备份覆盖
  • -u :如果目标文件旧或不存在则覆盖

7.如何强制移动文件

如果目标文件被写保护,在覆盖目标文件之前会要求您确认。

mv file1.txt target

mv: replace 'target/file1.txt', overriding mode 0444 (r--r--r--)? y

要避免此提示并立即覆盖文件,您可以使用强制选项 -f。

mv -f file1.txt target

如果您不知道什么是写保护,请阅读 Linux 中的文件权限。

您可以通过以下方式进一步了解 mv 命令 浏览其手册页. 但是,您更有可能只使用我在此处展示的这些 mv 命令示例。 仅供参考,您也可以使用 rename 命令一次重命名多个文件。

我希望你喜欢这篇文章。 如果您有任何问题或建议,请随时在下面的评论部分提出。