如何在 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.jpg
、2.jpg
、2.png
移动到当前工作目录下的另一个目录 Images
里面。
我们也可以通过使用正则表达式来匹配需要移动的文件名,来移动一个目录里面的多个文件。
mv *.jpg JPG-Images
它将所有以 .jpg
结尾的文件移动到 JPG-Images
文件夹中。
备份现有文件
要对现有文件进行备份,我们使用 -b
选项。它将为被覆盖的文件创建一个备份,并在备份文件的名称上加上 ~
字符。
mv -b abc.jpg 123.jpg
ls
输出:
123.jpg 123.jpg~
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn