mv
是move
的缩写,可以用来移动文件或者重命名文件名,经常用来备份文件或者目录。
命令格式
mv [选项] 源文件或者目录 目标文件或者目录
命令功能
代码语言:javascript复制mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
> touch 1.txt 3.txt 4.txt 5.txt
> mkdir rumenz test
├── 1.txt
└── rumenz
命令参数
选项你可以写在任意位置
- -b 如果已存在相同文件名,则覆盖前进行备份
- -f 如果已存在相同文件名,而用户不具有写的权限,则强制覆盖
- -i 如果已存在相同文件名,覆盖前提示用户进行确认
- -u 比较原文件与目标文件修改时间,如果目标文件较新则不覆盖
- -v 列出所有被移动或重命名的文件
- -t --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
文件改名
将
1.txt
改成2.txt
mv 1.txt 2.txt
移动文件
代码语言:javascript复制将
2.txt
移动到rumenz
目录
> mv 2.txt rumenz/
将3.txt 4.txt 5.txt
移动到rumenz
代码语言:javascript复制> mv 3.txt 4.txt 5.txt rumenz/
将3.txt 4.txt 5.txt
移动到rumenz
代码语言:javascript复制> mv -t rumenz/ 3.txt 4.txt 5.txt
mv 3.txt 4.txt 5.txt rumenz/
命令将3.txt 4.txt 5.txt
三个文件移到 test3目录中去,mv -t rumenz/ 3.txt 4.txt 5.txt
命令又将三个文件移动到rumenz
目录中去。
将3.txt
改名为4.txt
,4.txt
已经存在则给出提示
代码语言:javascript复制> mv -i 3.txt 4.txt
> mv: overwrite ‘4.txt’? y
> ls
4.txt 5.txt
将4.txt
强行改名为5.txt
,没有提示
代码语言:javascript复制> mv -f 4.txt 5.txt
> ls
5.txt
把当前目录下rumenz
目录下所有的文件移动到test
目录
代码语言:javascript复制> mv rumenz/* test/
把当前目录下rumenz
目录下所有的.txt
文件移动到test
目录
代码语言:javascript复制> mv rumenz/*.txt test/
移动目录
代码语言:javascript复制> mv rumenz/ test/
移动当前目录下所有的文件到上一级目录
代码语言:javascript复制> mv * ../
文件被覆盖前做简单备份,前面加参数-b
代码语言:javascript复制> tree
.
├── 4.txt
└── 5.txt
> mv 4.txt -b 5.txt
mv: overwrite ‘5.txt’? y
>ls
> 5.txt 5.txt~
5.txt~
为备份文件