1. 命令解析
命令用途:
重命名文件/目录,移动文件/目录
命令格式:
重命名文件/目录 mv [OPTIONS]... SROUCE DEST
移动文件/目录至DIRECTORY mv [OPTIONS]... SROUCE... DIRECTORY
移动文件/目录至DIRECTORY mv [OPTIONS]... -t DIRECTORY SROUCE...
命令参数:
-b 若目标文件已存在,在覆盖前先备份目标文件
-f, --force 强制删除,不提示用户 危险!慎用!
-i, --interactive 覆盖前提示用户
-n, --no-clobber 不覆盖已存在的文件
若-fin 三者同时使用,仅最后一个参数生效
-S, --suffix=SUFFIX 指定备份文件的后缀,默认为~
如命令mv -b --suffix=.back a b
,执行过后,文件b的备份为b.back
-t,--target-directory=DIRECTORY 标准目录选项,把所有SOURCE参数文件移动到目录DIRECTORY
-u, -update 仅在在目标文件不存在时移动或源文件比目标文件新时覆盖
2. 示例
2.1 移动文件,若目标文件已存在则备份之
[root@test mvTest]# ls
a b c d1 {d1 d2 d3
[root@test mvTest]# mv -b a b
mv: overwrite `b'? y
[root@test mvTest]# ls
b b~ c d1 {d1 d2 d3
2.2 不覆盖已存在的文件
[root@test mvTest]# ls
b b~ c d1 {d1 d2 d3
[root@test mvTest]# mv -n b c;
[root@test mvTest]# ls
b b~ c d1 {d1 d2 d3
2.3 参数覆盖
[root@test mvTest]# ls
b b~ c d1 {d1 d2 d3
[root@test mvTest]# mv -fin b c;
[root@test mvTest]# ls
b b~ c d1 {d1 d2 d3
2.4 改写备份文件后缀
[root@test mvTest]# ls
b b~ c d1 {d1 d2 d3
[root@test mvTest]# mv b c;
mv: overwrite `c'? n
[root@test mvTest]# mv -b -S ! b c
mv: overwrite `c'? y
[root@test mvTest]# ls
b~ c c! d1 {d1 d2 d3
2.5 移动一组文件
[root@test mvTest]# ls
b~ c c! d1 d2 d3 f1 f2 f3
[root@test mvTest]# mv f1 f2 f3 d2
[root@test mvTest]# ls
b~ c c! d1 d2 d3
[root@test mvTest]# tree d2
d2
├── f1
├── f2
└── f3
0 directories, 3 files
2.6 使用标准目录选项移动一组文件
[root@test mvTest]# ls
b~ c! d1 d2 d3
[root@test mvTest]# ls d2/
c f1 f2 f3
[root@test mvTest]# mv -t d3 d1/b d2/c
[root@test mvTest]# tree d3
d3
├── b
└── c
0 directories, 2 files
[root@test mvTest]# ls
b~ c! d1 d2
[root@test mvTest]# mv -t b~ d2
mv: target `b~' is not a directory
2.7 更新后移动文件
[root@test mvTest]# ls
a b b~ c c! d1 d2
[root@test mvTest]# touch a
[root@test mvTest]# ll
total 8
-rw-r--r-- 1 root root 0 Apr 10 20:22 a
-rw-r--r-- 1 root root 0 Apr 10 20:20 b
-rw-r--r-- 1 root root 0 Apr 10 19:30 b~
-rw-r--r-- 1 root root 0 Apr 10 20:20 c
-rw-r--r-- 1 root root 0 Apr 10 19:30 c!
drwxr-xr-x 4 root root 4096 Apr 10 20:18 d1
drwxr-xr-x 2 root root 4096 Apr 10 20:18 d2
[root@test mvTest]# mv -u b a;
[root@test mvTest]# ll
total 8
-rw-r--r-- 1 root root 0 Apr 10 20:22 a
-rw-r--r-- 1 root root 0 Apr 10 20:20 b
-rw-r--r-- 1 root root 0 Apr 10 19:30 b~
-rw-r--r-- 1 root root 0 Apr 10 20:20 c
-rw-r--r-- 1 root root 0 Apr 10 19:30 c!
drwxr-xr-x 4 root root 4096 Apr 10 20:18 d1
drwxr-xr-x 2 root root 4096 Apr 10 20:18 d2
[root@test mvTest]# mv -u a b;
mv: overwrite `b'? y
[root@test mvTest]# ll
total 8
-rw-r--r-- 1 root root 0 Apr 10 20:22 b
-rw-r--r-- 1 root root 0 Apr 10 19:30 b~
-rw-r--r-- 1 root root 0 Apr 10 20:20 c
-rw-r--r-- 1 root root 0 Apr 10 19:30 c!
drwxr-xr-x 4 root root 4096 Apr 10 20:18 d1
drwxr-xr-x 2 root root 4096 Apr 10 20:18 d2