mv - Move and Rename Files, 移动文件和更改文件名称。
mv命令是一个命令行工具,用于将文件或目录从一个地方移动到另一个地方。它支持移动单个文件、多个文件和目录。
mv命令既可以进行文件移动,也可以进行文件重命名,这取决于它的使用方式。在这两种情况下,原文件名在操作后都不再存在。mv的使用方法与cp基本相同,如下所示:
语法:
mv [OPTION] Source Destination
mv [OPTION] Source Directory
mv [OPTION] Source-1 Source-2 Source-3 Source-n Directory
常用选项
mv命令和cp命令的很多选项都是通用的。
Option | Long Option | Meaning |
-i | --interactive | 在覆盖一个现有文件之前,提示用户确认。如果没有指定这个选项,mv将默默地(意味着没有警告)覆盖文件。 提示出现后,如果按下y,则会覆盖同名文件,否则的话,不会拷贝这个文件。 |
-u | --update | 当把文件从源目录复制到目标目录时,只复制目标目录中不存的文件,以及源目录和目标目录都存在时,但源目录是比较新的文件。这在复制大量文件时很有用,因为它跳过了不需要复制的文件。 |
-n | --no-clobber | 对已经存在的文件不进行覆盖,也没有提示,什么都不做。 |
-b | --backup[=CONTROL] | 使用这个参数后,如果目的文件夹里存在同名文件,则会在目的文件夹内创建一个备份文件,再将源文件内容拷贝到目的文件。长参数可以指定备份方式或备份文件名后缀格式。 |
-S | --suffix=SUFFIX | 在生成备份文件时,指定后缀名,默认的文件名在原有基础上加上'~'后缀。 |
-f | --force | 如果目的文件已存在,不提示,直接覆盖 |
--strip-trailing-slashes | 当移动一个符号链接的文件夹时,使用此参数,避免结尾出现的斜线会对符号链接进行解析,而使操作失败。 | |
-t | --target-directory=DIRECTORY | 将所有的源文件移动到指定文件夹内 |
-T | --no-target-directory | 目的参数只能是文件 |
-v | --verbose | 显示操作信息 |
--help | 显示帮助信息 | |
--version | 显示版本信息 |
注:
如果使用了-i, -f, -n 选项中的多个,只有最后一个起作用。
示例
$ ls
1.txt 2.txt
$ mv --backup=numbered 2.txt 1.txt
$ ls
1.txt 1.txt.~1~
$ ll
total 12
drwxrwxr-x 3 vm vm 4096 4月 8 08:10 ./
drwxrwxr-x 8 vm vm 4096 4月 7 17:47 ../
drwxrwxr-x 2 vm vm 4096 4月 8 08:10 dir/
lrwxrwxrwx 1 vm vm 3 4月 8 08:10 dir1 -> dir/
$ mv dir1/ dir
mv: cannot overwrite non-directory 'dir/dir1' with directory 'dir1/'
$ mv --strip-trailing-slashes dir1/ dir
参考: