在Linux中,如何移动文件和目录 ( mv命令)
Syq2803
・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
目录中 要移动文件或目录,你需要对SOURCE
和DESTINATION
有写权限,否则,你将收到permission denied错误。
例如要将文件file1
从当前工作目录移动到/tmp
目录,你将运行:
mv file1 /tmp
要重命名文件,你需要指定目标文件名:
mv file1 file2
移动目录的语法与移动文件时的语法相同,在下面的示例中,如果dir2
目录存在,该命令将在dir2
内移动dir1
,如果dir2
不存在,dir1
将重命名为dir2
:
mv dir1 dir2
移动多个文件和目录
要移动多个文件和目录,请指定要作为源移动的文件,例如要将文件file1
和file2
移动到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
。
如果你有问题或反馈,请留下评论。