如何在Linux中移动文件和目录(mv命令)

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

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

如何使用 mv 命令#

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

mv [OPTIONS] SOURCE DESTINATION

SOURCE 可以是一个或多个文件或目录,并且 DESTINATION 可以是单个文件或目录。

  • 当多个文件或目录作为 SOURCEDESTINATION 必须是目录。 在这种情况下, SOURCE 文件被移动到目标目录。
  • 如果您将一个文件指定为 SOURCEDESTINATION 目标是现有目录,然后将文件移动到指定目录。
  • 如果您将一个文件指定为 SOURCE,以及一个文件 DESTINATION 目标,然后重命名文件。
  • 当。。。的时候 SOURCE 是一个目录, DESTINATION 不存在 SOURCE 将重命名为 DESTINATION。 否则,如果 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 command接受一些会影响默认命令行为的选项。

在某些Linux发行版中, mv 可能是 mv 命令带有一组自定义选项。 例如,在CentOS中 mv 是…的别名 mv -i。 你可以找到是否 mv 是使用的别名 type 命令:

type mv 

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

mv is aliased to `mv -i'

如果给出冲突的选项,则最后一个优先。

覆盖前提示

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

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

覆盖文件类型 y 要么 Y

强制覆盖

如果您尝试覆盖只读文件,则 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 命令用于移动和重命名文件和目录。

有关的更多信息 mv 命令,检查手册页或键入 man mv 在您的终端中。

被命令行吓到的新Linux用户可以使用GUI文件管理器移动文件。

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

电视终端

Sidebar