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

・6 分钟阅读

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

在本教程中,解释如何使用mv命令来移动文件和目录。

如何使用mv命令

mv命令用于重命名和移动文件和目录从一个位置移动到另一个位置,mv命令的语法如下所示:


mv [OPTIONS] SOURCE DESTINATION

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

将多个文件或目录作为SOURCE提供时,DESTINATION必须是一个目录,在这种情况下,SOURCE文件被移动到目标目录如果将单个文件指定为SOURCE,并且DESTINATION目标是现有目录,那么这个文件将移动到指定的目录如果将单个文件指定为SOURCE,将单个文件指定为DESTINATION target,则你将重命名文件当SOURCE是一个目录并且DESTINATION不存在时,SOURCE将重命名为DESTINATION,否则,如果DESTINATION存在,它被移动到DESTINATION目录中

要移动文件或目录,你需要对SOURCEDESTINATION有写权限,否则,你将收到permission denied错误。

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

mv file1 /tmp

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

mv file1 file2

移动目录的语法与移动文件时的语法相同,在下面的示例中,如果dir2目录存在,该命令将在dir2内移动dir1,如果dir2不存在,dir1将重命名为dir2

mv dir1 dir2

移动多个文件和目录

要移动多个文件和目录,请指定要作为源移动的文件,例如要将文件file1file2移动到dir1目录,请键入:

mv file1 file2 dir1

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

mv *.pdf ~/Documents

mv命令选项

mv命令接受几个影响默认命令行为的选项。

在一些Linux发行版中,mv可能是别名命令的mv,一组自定义的选项,例如,在CentOS mv中是mv -i的别名,可以使用mv命令查找是否为别名:

type mv

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


mv is aliased to `mv -i'

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

覆盖前提示

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

mv -i file1 /tmp

mv: overwrite '/tmp/file1'?

强制覆盖

如果尝试覆盖只读文件,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

备份文件将有与原始文件相同的名称,后面追加tilde ( ~ )。

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

ls /tmp/file1*

/tmp/file1 /tmp/file1~

详细输出

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

mv -i file1 /tmp

renamed 'file1' -> '/tmp/file1'

结束语

mv命令用于移动和重命名文件和目录。

有关mv命令的详细信息,请检查手册页或在终端中键入man mv

如果你有问题或反馈,请留下评论。

Syq2803 profile image