作用
重命名、覆盖或移动文件。
参数
1
2
3
mv [options] existing-file new-filename
mv [options] existing-file-list directory
mv [options] existing-directory new-directory
- 第一种形式:
existing-file
是需要重命名的文件路径;
new-filename
是文件的新路径名,用于重命名或覆盖。 - 第二种形式:
existing-file
是需要移动的文件路径列表;
directory
是文件需要移动到的新目录,用于移动。 - 第三种形式:
existing-file
是需要重命名的目录路径;
new-directory
是目录的新路径名,用于重命名或覆盖。
选项
1
2
3
4
5
-b 如果已存在相同文件名,则覆盖前进行备份
-f 如果已存在相同文件名,而用户不具有写的权限,则强制覆盖
-i 如果已存在相同文件名,覆盖前提示用户进行确认
-u 比较原文件与目标文件修改时间,如果目标文件较新则不覆盖
-v 列出所有被移动或重命名的文件
示例
-
重命名
1
$ mv demo1.txt demo2.txt # 重命名文件
-
对已存在的文件覆盖前进行确认,y或Y开头的字符串表示确定,其余任意字符表示否定
1
$ mv demo2.txt -i demo.txt # 是否覆盖"demo.txt"? y
-
移动目录,此处将cde目录移动到abc目录中
1
$ mv cde abc
-
重命名目录,此处将abc目录重命名为dir目录
1
$ mv abc dir
-
mv -u,确认修改时间再判断是否覆盖,此处time2.txt的修改时间比time1.txt的修改时间新,所以覆盖失败
1
$ mv time1.txt -u time2.txt
-
mv -v,列出移动或覆盖时的信息
1
$ mv time1.txt -v time2.txt
-
mv -b,覆盖时进行备份,所备份的文件尾部有个~
1
$ mv -b aa.txt bb.txt
Tips
- 在Linux中,覆盖和重命名的概念几乎是一样的,没有Windows中所谓的rename这一说法。
- 选项可以写在任意位置,可以
mv aa -v bb
,也可以mv -v aa bb
,还可以mv aa bb -v
。