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