如何在 Linux 中使用 mv 命令移动文件和目录

Suraj Joshi 2021年7月18日
如何在 Linux 中使用 mv 命令移动文件和目录

我们可以通过 Linux 终端使用带有各种参数的 mv 命令移动文件和目录。

使用 mv 命令移动文件和目录

mv(move) 命令可以将文件和目录从一个位置移动到另一个位置。它也可以用来重命名文件和目录。

mv 命令的语法

mv [OPTIONS] source destination

上述命令中的 source 可以是一个或多个文件或目录,destination 总是一个文件或目录。

如果我们有多个文件或目录作为源,则目标总是目录。在这种情况下,所有的源文件和目录都会被移动到目标目录中。如果我们以单个文件为源,以一个目录为目标,则文件会被移动到目标目录。

在移动文件和目录时需要注意的一点是,如果我们没有源文件和目标目录的写权限,我们将得到一个权限拒绝的错误。

使用 mv 命令移动文件到目录

我们可以使用下面的命令来移动目录内的文件。

mv <filename> <path_of _destination_directory>

示例:使用 mv 命令在目录内移动文件

mv ILLUMEE.svg SVG

它将当前工作目录下的文件 ILLUMEE.svg 移动到当前工作目录下的文件夹 SVG

如果目标目录不存在,则将源文件重命名为目标文件。

如果当前工作目录中不存在目录 SVG,则将文件 ILLUMEE.svg 重命名为 SVG

如果目标路径也是一个文件名,则源文件名与目标文件名重命名。

mv ILLUMEE.svg 1.svg

它将把文件 ILLUMEE.svg 重命名为 1.svg

在某些情况下,目标文件可能已经存在,如果我们使用 mv 命令,它将被覆盖。为了在覆盖前提示确认,我们使用 -i 选项和 mv 命令。

mv -i ILLUMEE.svg 1.svg

如果文件名 1.svg 已经存在,终端将在覆盖前提示我们。

mv -i ILLUMEE.svg 1.svg

输出:

mv: overwrite '1.svg'? n

如果要防止覆盖,按 N 键并按 Enter 键,否则按 Y 键并按 Enter 键。

我们也可以通过使用 mv 命令的 -n 选项来防止覆盖。

mv -n ILLUMEE.svg 1.svg

如果 1.svg 已经存在,它将防止覆盖。

使用 mv 命令将一个目录移动到另一个目录内

要将一个目录移动到另一个目录里面,我们可以使用以下命令。

mv <path_of_source_directory> <path_of _destination_directory>

例如使用 mv 命令在另一个目录中移动一个目录

mv Python_Scripts Python_Scripts_New

它将当前工作目录中的 Python_Scripts 目录移动到当前工作目录中的另一个目录 Python_Scripts_New 中。

如果目标目录不存在,则将源目录重命名为目标目录。

使用 mv 命令将多个文件移动到另一个目录下

要将多个文件移动到另一个目录中,我们在指定所有源文件后再指定目标目录路径。

mv <source_filepath_1> <source_filepath_2> <source_filepath_3> 
     <path_of_destination_directory>

示例:使用 mv 命令将多个文件移动到另一个目录

mv 1.jpg 2.jpg 2.png Images

它将我们当前工作目录下的文件 1.jpg2.jpg2.png 移动到当前工作目录下的另一个目录 Images 里面。

我们也可以通过使用正则表达式来匹配需要移动的文件名,来移动一个目录里面的多个文件。

mv *.jpg JPG-Images

它将所有以 .jpg 结尾的文件移动到 JPG-Images 文件夹中。

备份现有文件

要对现有文件进行备份,我们使用 -b 选项。它将为被覆盖的文件创建一个备份,并在备份文件的名称上加上 ~ 字符。

mv -b abc.jpg 123.jpg
ls

输出:

123.jpg 123.jpg~
作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

相关文章 - Linux Files and Directories