Linux mv命令使用详解
mv命令 用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,dest表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。
mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果:
- 如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。
- 如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。
注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。
用法
mv [options] … [-T] SOURCE DEST
mv [options] … SOURCE DIR
mv [options] … -t DIR SOURCE
选项 | 说明 |
---|---|
–backup=<备份模式> | 若需覆盖文件,则覆盖前先行备份; |
-b | 当文件存在时,覆盖前,为其创建一个备份; |
-f, –force | 若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录; |
-i, –interactive | 交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。 |
-n, –no-clobber | 不要覆盖已存在的文件 |
–strip-trailing-slashes | 删除源文件中的斜杠“/”; |
-S, –sunffix=<后缀> | 为备份文件指定后缀,而不使用默认的后缀; |
-t, –target-directory=<目录> | 指定源文件要移动到目标目录; |
-T, –no-target-directory | 将DEST作为普通文件对待 |
-u,–update | 当源文件比目标文件新或者目标文件不存在时,才执行移动操作。 |
-v, –verbose | 显示详细详细信息 |
-Z, –content | set SELinux security context of destination file to default type |
–help | 帮助信息 |
–version | 版本信息 |
注意
如果同时制定
-i
,-f
,-n
,中的多个,那么只有最后一个有效如果没有指定备份的后缀,则其默认值是
~
。
实例
将目录/usr/men
中的所有文件移到当前目录(用.
表示)中:
1 | mv /usr/men/* . |
移动文件
1 | mv file_1.txt /home/office/ |
移动多个文件
1 | mv file_2.txt file_3.txt file_4.txt /home/office/ |
移动目录
1 | mv directory_1/ /home/office/ |
重命名文件或目录
1 | mv file_1.txt file_2.txt |
重命名目录
1 | mv directory_1/ directory_2/ |
打印移动信息
1 | mv -v *.txt /home/office |
提示是否覆盖文件
1 | mv -i file_1.txt /home/office |
源文件比目标文件新时才执行更新
1 | mv -uv *.txt /home/office |
不要覆盖任何已存在的文件
1 | mv -vn *.txt /home/office |
复制时创建备份
1 | mv -bv *.txt /home/office |
无条件覆盖已经存在的文件
1 | mv -f *.txt /home/office |