mv

【功能说明】:

move (rename) files   # 移动或重命名文件或目录,两者可同时进行

★ 可同时移动多个文件,最后一个必须是目录


【语法格式】:

mv [OPTION]... SOURCE... DIRECTORY

 

【选项参数】:

参数说明
-b若需覆盖目标文件,则覆盖前先备份
-f, --force强制覆盖目标文件,不询问用户,危险
-i, --interactive若需覆盖目标文件,覆盖前先询问(默认使用)
-u, --update当源文件比目标文件版本更新时,才覆盖目标文件
-v, --verbose显示命令执行过程


【实践操作】:

1、重命名文件/tmp/a.txt 为/tmp/b.txt ,重命名目录/aadir 为 /bbdir

[root@Mode /]# mv /tmp/a.txt /tmp/b.txt

[root@Mode /]# mv /aadir/ /bbdir/

[root@Mode /]# ls /tmp/

b.txt

[root@Mode /]# ls /

bbdir  boot  dev  home  lib64       media  opt   root  selinux  sys   tmp  var

bin    data  etc  lib   lost+found  mnt    proc  sbin  srv      test  usr

[root@Mode /]#


2、把文件/tmp/b.txt 移动到 /data/ 目录下,若目标文件已存在,则覆盖前先备份

[root@Mode /]# mv -bv /tmp/b.txt /data/

mv: overwrite `/data/b.txt'? y

`/tmp/b.txt' -> `/data/b.txt' (backup: `/data/b.txt~')

[root@Mode /]# ls /data/

b.txt  b.txt~


3、把文件/tmp/b.txt 移动到 /data/ 目录下,若目标文件已存在,则直接覆盖

[root@Mode /]# mv -f /tmp/b.txt /data/

[root@Mode /]#


4、把文件/tmp/b.txt 移动到 /data/ 目录下,若目标文件已存在,先询问用户

[root@Mode /]# mv -i /tmp/b.txt  /data/

mv: overwrite `/data/b.txt'? y

[root@Mode /]#


5、把文件/tmp/b.txt 移动到 /data/ 目录下,若目标文件版本更新,则操作不进行

[root@Mode /]# cat /tmp/b.txt 

111111

[root@Mode /]# cat /data/b.txt 

111111

I am the new

I am the newer

[root@Mode /]# ll /tmp/b.txt /data/b.txt           

-rw-r--r--. 1 root root 35 May 17 17:53 /data/b.txt

-rw-r--r--. 1 root root  7 May 17 17:52 /tmp/b.txt

[root@Mode /]# mv -u /tmp/b.txt /data/

[root@Mode /]# cat /data/b.txt 

111111

I am the new

I am the newer

[root@Mode /]#