用来移动文件(或目录)或修改文件名(目录名);
命令格式 - mv [选项] 源文件或目录 目标文件或目录
命令功能 - 视 mv 命令中第二个参数类型的不同(是目标文件还是目标目录),mv 命令将文件重命名或将其移至一个新目录中;
命令参数 -
-b :若需覆盖文件,则覆盖前先行备份;
-f :若目标文件已存在时,不会 询问而直接覆盖;
-i :若目标文件已经存在时,会 询问是否覆盖;
-u :若目标文件已经存在,且 source 比较新,才会更新;
-t :—target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定 mv 的目标目录,用于移动多个源文件到一个目录的情况;此时目标目录在前,源文件在后;
命令实例 -
实例一:文件改名
命令
xxxxxxxxxx11mv log1.log log2.log输出
x
1Qs-MacBook-Pro:dir3 qiu$ ll2total 83-rw-r--r--@ 1 qiu staff 9 4 10 10:03 log1.log4Qs-MacBook-Pro:dir3 qiu$ mv log1.log log2.log5Qs-MacBook-Pro:dir3 qiu$ ll6total 87-rw-r--r--@ 1 qiu staff 9 4 10 10:03 log2.log实例二:移动文件
命令
xxxxxxxxxx11mv log2.log test1输出
xxxxxxxxxx151Qs-MacBook-Pro:t1 qiu$ ls -lR2total 83-rw-r--r--@ 1 qiu staff 14 4 10 09:50 log2.log4drwxr-xr-x 3 qiu staff 96 4 10 09:56 test156./test1:7Qs-MacBook-Pro:t1 qiu$ mv log2.log test18Qs-MacBook-Pro:t1 qiu$ ls -lR9total 010drwxr-xr-x 4 qiu staff 128 4 10 09:57 test11112./test1:13total 814-rw-r--r--@ 1 qiu staff 14 4 10 09:50 log2.log15Qs-MacBook-Pro:t1 qiu$ 实例三:将文件 log1.log log2.log log3.log 移动到目录 test2 中
命令
xxxxxxxxxx11mv log1.log log2.log log3.log test2xxxxxxxxxx11mv -t test3/ log1.log log2.log log3.log输出
xxxxxxxxxx171Qs-MacBook-Pro:t1 qiu$ ll2total 243-rw-r--r--@ 1 qiu staff 9 4 10 10:03 log1.log4-rw-r--r--@ 1 qiu staff 14 4 10 09:50 log2.log5-rw-r--r--@ 1 qiu staff 12 4 10 10:03 log3.log6drwxr-xr-x 3 qiu staff 96 4 10 10:02 test17Qs-MacBook-Pro:t1 qiu$ mv log1.log log2.log log3.log test18Qs-MacBook-Pro:t1 qiu$ ll9total 010drwxr-xr-x 6 qiu staff 192 4 10 10:04 test111Qs-MacBook-Pro:t1 qiu$ cd test1/12Qs-MacBook-Pro:test1 qiu$ ll13total 2414-rw-r--r--@ 1 qiu staff 9 4 10 10:03 log1.log15-rw-r--r--@ 1 qiu staff 14 4 10 09:50 log2.log16-rw-r--r--@ 1 qiu staff 12 4 10 10:03 log3.log17Qs-MacBook-Pro:test1 qiu$ xxxxxxxxxx161// Mac_Terminal 下 该方法无效 -t参数无效2[root@localhost test3]# ll3总计 204-rw-r--r-- 1 root root 8 10-28 06:15 log1.txt5-rw-r--r-- 1 root root 12 10-28 06:15 log2.txt6-rw-r--r-- 1 root root 13 10-28 06:16 log3.txt7drwxr-xr-x 2 root root 4096 10-28 06:21 logs8-rw-r--r-- 1 root root 29 10-28 06:05 test1.txt9[root@localhost test3]# mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.txt 10[root@localhost test3]# cd ..11[root@localhost test]# cd test4/12[root@localhost test4]# ll13总计 1214-rw-r--r-- 1 root root 8 10-28 06:15 log1.txt15-rw-r--r-- 1 root root 12 10-28 06:15 log2.txt16-rw-r--r-- 1 root root 13 10-28 06:16 log3.txt实例四:将文件 file1 改名为 file2,如果 file2 已经存在,则询问是否覆盖
命令
xxxxxxxxxx11mv -i log1.log log2.log输出
xxxxxxxxxx131Qs-MacBook-Pro:t1 qiu$ ll2total 243-rw-r--r--@ 1 qiu staff 9 4 10 10:03 log1.log4-rw-r--r--@ 1 qiu staff 14 4 10 09:50 log2.log5-rw-r--r--@ 1 qiu staff 12 4 10 10:03 log3.log6drwxr-xr-x 3 qiu staff 96 4 10 10:05 test17Qs-MacBook-Pro:t1 qiu$ mv -i log1.log log2.log8overwrite log2.log? (y/n [n]) y9Qs-MacBook-Pro:t1 qiu$ ll10total 1611-rw-r--r--@ 1 qiu staff 9 4 10 10:03 log2.log12-rw-r--r--@ 1 qiu staff 12 4 10 10:03 log3.log13drwxr-xr-x 3 qiu staff 96 4 10 10:05 test1实例五:将文件 file1 改名为 file2,即使file2 存在,也直接覆盖掉
命令
xxxxxxxxxx11mv -f log1.log log2.log输出
xxxxxxxxxx121Qs-MacBook-Pro:t1 qiu$ ll2total 243-rw-r--r--@ 1 qiu staff 9 4 10 10:03 log1.log4-rw-r--r--@ 1 qiu staff 9 4 10 10:03 log2.log5-rw-r--r--@ 1 qiu staff 12 4 10 10:03 log3.log6drwxr-xr-x 3 qiu staff 96 4 10 10:05 test17Qs-MacBook-Pro:t1 qiu$ mv -f log1.log log2.log8Qs-MacBook-Pro:t1 qiu$ ll9total 1610-rw-r--r--@ 1 qiu staff 9 4 10 10:03 log2.log11-rw-r--r--@ 1 qiu staff 12 4 10 10:03 log3.log12drwxr-xr-x 3 qiu staff 96 4 10 10:05 test1实例六:目录的移动
命令
注意:dir2 已经存在
xxxxxxxxxx11mv dir1 dir2输出
xxxxxxxxxx121Qs-MacBook-Pro:test1 qiu$ ll2total 03drwxr-xr-x 2 qiu staff 64 4 10 10:17 dir14drwxr-xr-x 2 qiu staff 64 4 10 10:17 dir25Qs-MacBook-Pro:test1 qiu$ mv dir1 dir26Qs-MacBook-Pro:test1 qiu$ ll7total 08drwxr-xr-x 3 qiu staff 96 4 10 10:18 dir29Qs-MacBook-Pro:test1 qiu$ cd dir2/10Qs-MacBook-Pro:dir2 qiu$ ll11total 012drwxr-xr-x 2 qiu staff 64 4 10 10:17 dir1实例七:目录的改名
命令
注意:dir2 不存在
xxxxxxxxxx11mv dir1 dir2输出
xxxxxxxxxx71Qs-MacBook-Pro:dir2 qiu$ ll2total 03drwxr-xr-x 2 qiu staff 64 4 10 10:17 dir14Qs-MacBook-Pro:dir2 qiu$ mv dir1 dir25Qs-MacBook-Pro:dir2 qiu$ ll6total 07drwxr-xr-x 2 qiu staff 64 4 10 10:17 dir2实例八:移动当前文件夹下的所有文件到上一级目录
命令
xxxxxxxxxx11mv * ../输出
xxxxxxxxxx141Qs-MacBook-Pro:dir2 qiu$ ll2total 163drwxr-xr-x 2 qiu staff 64 4 10 10:24 dir34-rw-r--r--@ 1 qiu staff 9 4 10 10:03 log2.log5-rw-r--r--@ 1 qiu staff 12 4 10 10:03 log3.log6Qs-MacBook-Pro:dir2 qiu$ mv * ../7Qs-MacBook-Pro:dir2 qiu$ ll8Qs-MacBook-Pro:dir2 qiu$ cd ../9Qs-MacBook-Pro:dir1 qiu$ ll10total 1611drwxr-xr-x 2 qiu staff 64 4 10 10:26 dir212drwxr-xr-x 2 qiu staff 64 4 10 10:24 dir313-rw-r--r--@ 1 qiu staff 9 4 10 10:03 log2.log14-rw-r--r--@ 1 qiu staff 12 4 10 10:03 log3.log实例九:将当前目录的一个子目录中的文件移动到另一个子目录中
命令
xxxxxxxxxx11mv dir2/* dir3输出
xxxxxxxxxx231Qs-MacBook-Pro:dir1 qiu$ ls -lR2total 03drwxr-xr-x 5 qiu staff 160 4 10 10:27 dir24drwxr-xr-x 2 qiu staff 64 4 10 10:24 dir356./dir2:7total 168-rw-r--r--@ 1 qiu staff 9 4 10 10:03 log2.log9-rw-r--r--@ 1 qiu staff 12 4 10 10:03 log3.log1011./dir3:12Qs-MacBook-Pro:dir1 qiu$ mv dir2/* dir313Qs-MacBook-Pro:dir1 qiu$ ls -lR14total 015drwxr-xr-x 3 qiu staff 96 4 10 10:30 dir216drwxr-xr-x 4 qiu staff 128 4 10 10:30 dir31718./dir2:1920./dir3:21total 1622-rw-r--r--@ 1 qiu staff 9 4 10 10:03 log2.log23-rw-r--r--@ 1 qiu staff 12 4 10 10:03 log3.log实例十:文件被覆盖前做简单备份,前面加参数 -b
命令
xxxxxxxxxx11mv log1.txt -b log2.txt输出
xxxxxxxxxx131// Mac_Terminal 下该方法无效,-b参数无效2[root@localhost test5]# ll3-rw-r--r-- 1 root root 25 10-28 07:02 log1.txt4-rw-r--r-- 1 root root 13 10-28 06:16 log2.txt5-rw-r--r-- 1 root root 29 10-28 06:05 test1.txt6drwxr-xr-x 2 root root 4096 10-25 17:56 test5-17[root@localhost test5]# mv log1.txt -b log2.txt8mv:是否覆盖“log2.txt”? y9[root@localhost test5]# ll10-rw-r--r-- 1 root root 25 10-28 07:02 log2.txt11-rw-r--r-- 1 root root 13 10-28 06:16 log2.txt~12-rw-r--r-- 1 root root 29 10-28 06:05 test1.txt13drwxr-xr-x 2 root root 4096 10-25 17:56 test5-1说明
-b 不接收参数,mv 会去读取环境变量 VERSION_CONTROL 来作为备份策略;
共有四种备份策略: