mv 指令 move file

警告
本文最后更新于 2023-10-22,文中内容可能已过时。

mv 指令 move file

mv :移动 (改名) 文件

cp 是复制,mv 就是剪切

1
2
mv [选项] 源文件 目标文件
mv [选项] 源文件/目录... 目录

分情况:

  • 如果目标是文件,和源文件同目录就是重命名,不是同目录就是移动 + 重命名,注意,如果目标文件的所在的目录不存在,会报错,不会自动创建,此外,将如果源有多个,那目标只能是目录,不然会报错。

  • 如果目标是目录,则移动源文件/目录(可以不只一个) 到一个目录,注意,mv默认就是递归的,这跟cp不一样,剪切一个文件夹就是把这个文件夹和其下所有的东西都剪切过去,如果目标目录不存在,就会把源文件命名为目标目录,相当于重命名(mv既可以重命名文件也可以重命名文件夹)。这一点,跟cp类似。同样的,源文件或者源目录也可以使用通配符来匹配多个。

  • -f: force 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。

  • -n: 不要覆盖任何已存在的文件或目录。源文件也不会被移动过去

  • -i: interactive 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。如果输入 n,源文件也不会被移动过去

  • -u:update 当源文件比目标文件新或者目标文件不存在时,才执行移动操作,非常好用的参数

  • -b: backup 当目标文件或目录存在时,在执行覆盖前,会为被覆盖的文件创建一个备份,存放到被覆盖文件的同目录下,备份文件为源文件名加上后缀~

常用命令 -f -n -i -u -b

这几个参数都非常有用,让mv的功能大大增强。

如果不想把文件夹本身也剪切过去,可以用mv folder/* target

把文件夹里的东西剪切出来可以用 mv folder/target .

0%