跟老男孩学Linux运维:核心系统命令实战
上QQ阅读APP看书,第一时间看更新

2.8 mv:移动或重命名文件

2.8.1 命令详解

【命令星级】 ★★★★★

【功能说明】

mv命令可以理解为英文单词move的缩写,其功能是移动或重命名文件(move/rename files)。

【语法格式】

mv  [option]  [source]  [dest]
mv  [选项]    [源文件]  [目标文件]

特别说明:

mv命令以及后面的选项和文件,每个元素之间都至少要有一个空格。

【选项说明】

表2-10针对该命令的参数选项进行了说明。

表2-10 mv命令的参数选项及说明

2.8.2 使用范例

范例2-41:给文件改名的例子。

[root@oldboy test]# ls
dir1  dir3  file1.txt  file3.txt  file5.txt
dir2  dir4  file2.txt  file4.txt  file6.txt
[root@oldboy test]# mv file6.txt file7.txt #<==若file7.txt不存在,则将file6.
                                           txt重命名为file7.txt。
[root@oldboy test]# ls
dir1  dir3  file1.txt  file3.txt  file5.txt
dir2  dir4  file2.txt  file4.txt  file7.txt
[root@oldboy test]# mv file5.txt file7.txt #<==若file7.txt存在,则将file5.txt
                                           覆盖为file7.txt。
mv: overwrite 'file7.txt'? y #<==由于系统默认给mv设置了别名,因此会提示是否覆盖。
[root@oldboy test]# alias mv
alias mv='mv -i' #<==-i参数的功能是若目标文件已经存在,就会询问是否覆盖。
[root@oldboy test]# ls
dir1  dir2  dir3  dir4  file1.txt  file2.txt  file3.txt  file4.txt  file7.txt
[root@oldboy test]# \mv file4.txt file7.txt #<==使用\屏蔽系统别名就不会询问是否覆
                                            盖了。
[root@oldboy test]# ls
dir1  dir2  dir3  dir4  file1.txt  file2.txt  file3.txt  file7.txt
[root@oldboy test]#

范例2-42:移动文件的例子。

移动单个文件:

[root@oldboy test]# ls dir1/
sub1
[root@oldboy test]# mv file7.txt dir1/ #<==dir1为目录且存在,则移动file7.txt到
                                        dir1下,若dir1不存在,则重命名为dir1的
                                        普通文件。
[root@oldboy test]# ls dir1/
file7.txt  sub1

移动多个文件:

[root@oldboy test]# mv file1.txt file2.txt dir1/  #<==第一种方式,多个文件在前,目录
                                                在后。
[root@oldboy test]# ls dir1/
file1.txt  file2.txt  file7.txt  sub1
[root@oldboy test]# mv dir1/file* . #<==还原试验环境,file*匹配所有以file开头的
                                     文件。

范例2-43:将源和目标调换移动到文件目录(-t参数)。

[root@oldboy test]# ls
dir1  dir2  dir3  dir4  file1.txt  file2.txt  file3.txt  file7.txt
[root@oldboy test]# mv -t dir1/ file1.txt  file2.txt  file3.txt  file7.txt #<==使用-t参数将源和目标调换,-t后接目录,最后是要移动的文件。
[root@oldboy test]# ls dir1/
file1.txt  file2.txt  file3.txt  file7.txt  sub1

范例2-44:移动目录的例子。

[root@oldboy test]# ls
dir1  dir2  dir3  dir4
[root@oldboy test]# mv dir1 dir5 #<==目录dir5不存在,将目录dir1改名为dir5。
[root@oldboy test]# ls
dir2  dir3  dir4  dir5
[root@oldboy test]# ls dir5/
file1.txt  file2.txt  file3.txt  file7.txt  sub1
[root@oldboy test]# mv dir2 dir5 #<==目录dir5存在,将dir2移动到dir5中。
[root@oldboy test]# ls dir5/
dir2  file1.txt  file2.txt  file3.txt  file7.txt  sub1
[root@oldboy test]# mv dir3/ dir5/ #<==源目录结尾加“/”不影响结果,但为了规范和简单
                                     起见,不加“/”。
[root@oldboy test]# ls
dir4  dir5
[root@oldboy test]# ls dir5/
dir2  dir3  file1.txt  file2.txt  file3.txt  file7.txt  sub1

2.8.3 关于mv命令的使用小结

表2-11针对mv命令的使用进行了总结。

表2-11 mv命令使用小结