移动文件和目录是您在Linux系统上经常需要执行的最基本的任务之一。

在本教程中,我们将说明如何使用mv命令移动文件和目录。

如何使用mv命令

mv命令(移动的简称)用于将文件和目录从一个位置重命名和移动到另一个位置。mv命令的语法如下:

mv [OPTIONS] source destination

source可以是一个或多个文件或目录,destination可以是单个文件或目录。

  • 如果您将多个文件或目录指定为source,则destination必须是一个目录。在这种情况下,source文件将移动到目标目录。
  • 如果将单个文件指定为source,并且destination目标是现有目录,则该文件将移动到指定目录。
  • 如果您将一个文件指定为source,并将一个文件指定为destination目标,那么您将重命名该文件
  • 如果source是,而destination没有,source则将存在重命名为destination,否则将其移动到destination目录中。

要移动文件,你需要有两个写入权限的文件或目录sourcedestination。否则,您将收到一个权限被拒绝的错误。

例如,要将文件file1当前工作目录移动/tmp要运行的目录:

mv file1 /tmp

要重命名文件,请指定目标文件名:

mv file1 file2

移动目录的命令与移动文件时的命令相同。在下面的例子中,如果dir2目录中存在命令将移动dir1dir2。如果dir2不存在,dir1将被重命名为dir2

mv dir1 dir2

移动多个文件和目录

要移动多个文件和目录,请指定要移动的文件作为源。例如移动文件file1file2dir1目录,你可以键入:

mv file1 file2 dir1

mv命令还允许您使用模式匹配。例如,要将所有pdf文件从当前目录移动到~/Documents目录,您将使用:

mv *.pdf ~/Documents

mv命令选项

mv命令接受影响默认命令行为的选项。在某些Linux发行版中,命令mv可能是带有自定义选项集的命令的别名mv。例如,在CentOS中,mv是的别名mv -i。您可以使用以下type命令查找mv是否为别名:

type mv

如果mv为别名,则输出将如下所示:

mv is aliased to `mv -i'

如果指定冲突的选项,则最后指定的选项优先。

覆盖前提示

默认情况下,如果目标文件存在,它将被覆盖。要提示确认,请使用以下-i选项:

mv -i file1 /tmp
mv: overwrite '/tmp/file1'?

要覆盖文件,请键入字符yY

强制覆盖

如果尝试覆盖只读文件,mv命令将提示您是否要覆盖文件:

mv -i file1 /tmp
mv: replace '/tmp/file1', overriding mode 0400 (r--------)? 

为避免出现提示,请使用以下-f选项:

mv -f file1 /tmp

当您需要覆盖多个文件时,此选项特别有用。

不要覆盖现有文件

-n选项告诉mv从不覆盖任何现有文件:

mv -f file1 /tmp

如果file1存在,则上面的命令将不执行任何操作,否则会将文件移动到/tmp目录中。

备份文件

如果目标文件存在,则可以使用以下-b选项创建该文件的备份:

mv -b file1 /tmp

备份文件的名称与原始文件的名称相同,并附加一个波浪号~

使用ls命令来验证是否已创建备份:

ls /tmp/file1*
/tmp/file1  /tmp/file1~

详细输出

另一个有用的选项是-v。使用此选项时,该命令将打印每个移动文件的名称:

mv -i file1 /tmp
renamed 'file1' -> '/tmp/file1'

结论

到目前为止,您应该已经对如何使用mv命令移动文件和目录有了很好的了解。被命令行吓到的Linux新用户可以使用GUI文件管理器移动文件。

有关mv命令的更多信息,请参见手册页

如果您有任何问题或反馈,请随时发表评论。

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持