Linux 中的 mv 命令示例:移动文件和目录Linux 中的 mv 命令示例:移动文件和目录Linux 中的 mv 命令示例:移动文件和目录Linux 中的 mv 命令示例:移动文件和目录
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

Linux 中的 mv 命令示例:移动文件和目录

Linux 中的 mv 命令用于移动和重命名文件和目录。在本教程中,您将学习 mv 命令的一些基本用法。

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

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

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

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

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

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

mv 命令的 7 个实用示例

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

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

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

mv source_file target_directory

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

2. 如何移动多个文件

如果您想一次移动多个文件,只需将所有文件提供给移动命令,后跟目标目录即可。

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

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

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

mv *.txt target_directory

3. 如何重命名文件

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

mv source_file target_directory/target_file

在上面的例子中,如果target_fille不存在于target_directory中,它将创建target_file。

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

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

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

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

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

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

mv source_directory target_directory

在上面的示例中,如果 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 不覆盖它。

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

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 命令示例。仅供参考,您还可以使用重命名命令一次重命名多个文件。

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

©2015-2025 艾丽卡 support@alaica.com