Linux教程网

Linux文件移动命令mv

mv 命令,全称为 move,可以用来移动或重命名文件和目录。

语法选项

命令语法如下

1
2
3
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

SOURCE 指的是源文件,也就是被移动或重命名的文件或目录,DEST 指的是目标文件,也就是被移动或重命名后生成的文件,DIRECTORY 表示的是被移动的目标目录。

... 表示的该选项或参数可以指定多次,比如 SOURCE... 表示可以指定多个源文件。

常用的命令选项,总结如下

  • -b:如果目标文件存在,则在覆盖前先备份目标文件
  • -f:如果目标文件存在,则直接覆盖,没有任何提示
  • -i:如果目标文件存在,在覆盖前会进入交互模式,让用户提示选择是否覆盖
  • -n:如果目标文件存在,则不覆盖
  • -u:只有源文件比目标文件新时才会移动,或目标文件不存在时会移动
  • -v:显示移动或重命名的文件详情

上边只罗列了 mv 命令中常用的选项,基本可以满足大部分日常工作需求。如上述选项不能够满足需求,可以自己 man mv 查看手册详情。

用法示例

总结一些 mv 命令常见的使用方法

1. 移动文件

1
$ mv a.txt foo

a.txt 文件移动到 foo 目录中

2. 移动目录

1
$ mv bar foo

bar 目录移动到 foo 目录中,需要注意,如果在移动前 foo 目录不存在,就相当于把 bar 重命名为 bar

3. 重命名文件

1
$ mv a.txt b.txt

a.txt 文件重命名为 b.txt

4. 重命名目录

1
$ mv foo bar

foo 目录重命名为 bar,需要注意,如果 bar 目录在重命名前就存在,则是将 foo 目录移动到 var 目录下,而不是重命名,可以与第 2 命令对比着来理解。

5. 移动多个文件

1
2
3
$ mv a.txt b.txt c.txt foo
# 等效于下边的命令
$ mv -t foo a.txt b.txt c.txt

a.txtb.txtc.txt 多个文件移动到 foo 目录中。同理,也可以将多个目录移动到另一个位置。

6. 重命名文件提示覆盖

如果重名名文件时,目标文件已存在,可以指定 -i 选项,提示用户选择是否覆盖,这样可以更加安全,防止意外覆盖重要文件

1
2
# 命令执行前b.txt文件已存在
$ mv -i a.txt b.txt

7. 覆盖前备份目标文件

当目标文件已存在,执行 mv 命令时指定 -b 选项,可以在覆盖前先备份目标文件

1
2
3
$ mv -b a.txt b.txt
$ ls
ls b.txt b.txt~

可以看到额外生成了 b.txt~ 备份文件


专题:

本文发表于 2022-05-31,最后修改于 2023-09-17。

本站永久域名「 golinuxblog.com 」,也可搜索「 Linux教程网 」找到我。


上一篇 « Linux文件拷贝命令cp 下一篇 » Linux目录查看命令ls

推荐阅读

Big Image