简介
mv(英文全拼:move file)命令可以移动文件或对其改名、或将文件或目录移入其它位置。
命令格式
mv [OPTION]… [-T] SOURCE DEST mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用参数
| -i | 若存在同名文件,则向用户询问是否覆盖 |
|---|---|
| -f | 在mv操作要覆盖某已有的目标文件时不给任何指示 |
| -b | 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份 |
| -u | 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作 |
| -n | 不要覆盖任何已存在的文件或目录 |
四种情况说明
| mv source_file(文件) dest_file(文件) | 将源文件名 source_file 改为目标文件名 dest_file |
|---|---|
| mv source_file(文件) dest_directory(目录) | 目录名 dest_directory 已存在,将文件 source_file 移动到目标目录 dest_directory 中 目录名 dest_directory 不存在则 ,抛出一个错误 |
| mv source_directory(目录) dest_directory(目录) | 目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中; 目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory |
| mv source_directory(目录) dest_file(文件) | 出错 |
[root@localhost ~]# echo aaa > file_a.txt[root@localhost ~]# echo bbb > file_b.txt[root@localhost ~]# echo ccc > file_c.txt[root@localhost ~]# head -v file_*.txt==> file_a.txt <==aaa==> file_b.txt <==bbb==> file_c.txt <==ccc## mv 文件到文件[root@localhost ~]# mv file_a.txt file_d.txt ## 复制到一个不存在的文件[root@localhost ~]# cat file_d.txtaaa[root@localhost ~]# alias mv ## 设置了一个别名,覆盖重名文件时,则提示是否覆盖alias mv='mv -i'[root@localhost ~]# mv file_d.txt file_b.txt ## 覆盖到一个已经存在的文件,则提示是因为设置了别名,mv: overwrite ‘file_b.txt’? y[root@localhost ~]# cat file_b.txtaaa## mv 文件到目录[root@localhost ~]# mkdir test[root@localhost ~]# mv file_b.txt test2/ ## 移动到一个不存在的目录mv: cannot move ‘file_b.txt’ to ‘test2/’: Not a directory[root@localhost ~]# mv file_b.txt test ## 移动到一个存在的目录[root@localhost ~]# tree testtest└── file_b.txt0 directories, 1 file## mv 移动目录到目录目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory## mv 移动目录到文件[root@localhost ~]# mv test file_c.txtmv: overwrite ‘file_c.txt’? ymv: cannot overwrite non-directory ‘file_c.txt’ with directory ‘test’
示例
## -b 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份[root@localhost ~]# echo aaa > filea.txt[root@localhost ~]# echo bbb > fileb.txt[root@localhost ~]# lltotal 8-rw-r--r--. 1 root root 4 May 17 17:13 filea.txt-rw-r--r--. 1 root root 4 May 17 17:13 fileb.txt[root@localhost ~]# mv -b filea.txt fileb.txtmv: overwrite ‘fileb.txt’? y[root@localhost ~]# lltotal 8-rw-r--r--. 1 root root 4 May 17 17:13 fileb.txt-rw-r--r--. 1 root root 4 May 17 17:13 fileb.txt~[root@localhost ~]# cat fileb.txt ## 已经被 filea.txt 覆盖aaa[root@localhost ~]# cat fileb.txt~ ## 保留了一个备份文件bbb
