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 命令示例。仅供参考,您还可以使用重命名命令一次重命名多个文件。
我希望你喜欢这篇文章。如果您有疑问或建议,请随时在下面的评论部分提问。