首页 > 代码库 > 一天一个Linux基础命令之切换目录移动命令mv

一天一个Linux基础命令之切换目录移动命令mv

mv:移动文件或目录

1、命令格式

mv     [option]    SRC(源目录或文件)    DEC(目标目录)

2、命令功能

mv命令是move的缩写,可以用来移动文件或者将文件改名,是Linux系统下常用的命令,经常用来备份文件或者目录。

mv 命令的第二个参数是文件或目录时,mv命令完成重命名或者移动文件,如果重命名,源文件只能有一个(也可以是目录名),当如果是移动文件,源文件可以为多个,目标目录只能一个,在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。

3、常用选项

-b:移动之前如果移动的目标文件存在则先备份目标文件,再移动

-f:强制移动,有文件相同覆盖不提示

-i:交互式移动,用于有目标文件存在时,询问管理员

-n:如果目标文件存在则不覆盖目标文件

-t:用于源文件有多个的情况下,此时目标文件在前,源文件或目录在后

-u:移动文件时如果目标文件比源文件新,则不移动

 -v,--verbose:显示详细信息

 --help:帮助

 --version:显示命令版本

4、常用范例

1:移动脚本info.sh/sh目录中

命令:mv info.sh /sh

[root@server~]# ls
anaconda-ks.cfg  iflogin.sh info.sh  install.log  install.log.syslog  yum.log
[root@server~]# mv info.sh /sh
[root@server~]# ls /sh/
info.sh
[root@server~]#

2:将/sh目录下的info.sh改名,改为userinfo.sh

命令:mv /sh/info.sh /sh/userinfo.sh

[root@server~]# mv /sh/info.sh /sh/userinfo.sh
[root@server~]# ls /sh
userinfo.sh
[root@server~]#

3:移动多个文件到/sh目录下,并显示移动信息

命令:mv  -v iflogin.shautoadd.sh autodel.sh /sh

[root@server~]# ls
anaconda-ks.cfg  autoadd.sh autodel.sh  iflogin.sh  install.log install.log.syslog    yum.log
[root@server~]# mv -v autoadd.sh autodel.sh iflogin.sh /sh
`autoadd.sh‘-> `/sh/autoadd.sh‘
`autodel.sh‘-> `/sh/autodel.sh‘
`iflogin.sh‘-> `/sh/iflogin.sh‘
[root@server~]# ls /sh/
autoadd.sh  autodel.sh iflogin.sh  userinfo.sh
[root@server~]#

通过上面的ls命令得知在当前目录中有3个以sh结尾的文件,并且都是我们要移动的文件所已我们可以用以下命令,也可以实现上面的操作

 mv -v *.sh /sh

4:目标文件存在则备份目标文件,然后把本文件移动过去,并显示详细的移动信息

命令:mv -bv userinfo.sh /sh

[root@server~]# ll /sh/
total 8
-rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh
[root@server~]# ll
total 48
-rw-------.1 root root  1442 Dec  7 21:28 anaconda-ks.cfg
-rw-r--r--.1 root root 27312 Dec  7 21:28install.log
-rw-r--r--.1 root root  7572 Dec  7 21:27 install.log.syslog
-rw-r--r--.1 root root   276 Dec 10 22:12userinfo.sh
-rw-------.1 root root     0 Dec 9 20:39 yum.log
[root@server~]# mv -bv userinfo.sh /sh
mv:overwrite `/sh/userinfo.sh‘? y
`userinfo.sh‘-> `/sh/userinfo.sh‘ (backup: `/sh/userinfo.sh~‘)
[root@server~]#
[root@server~]# ll /sh/
total 12
-rw-r--r--.1 root root 276 Dec 10 22:12 userinfo.sh
-rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh~
[root@server~]#

5:目标文件如果存在并且比源文件新,则不移动

命令:mv -uv userinfo.sh /sh

[root@server~]# ll
total 52
-rw-r--r--.1 root root 27312 Dec  7 21:28install.log
-rw-r--r--.1 root root  7572 Dec  7 21:27 install.log.syslog
-rw-r--r--.1 root root   276 Dec 10 22:12userinfo.sh
-rw-------.1 root root     0 Dec  9 20:39 yum.log
[root@server~]# ll /sh/
total 4
-rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh
[root@server~]# mv -u userinfo.sh /sh/
[root@server~]# ll /sh/
total 4
-rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh
[root@server~]#

6:如果文件存在则不移动

命令:mv -n userinfo.sh /sh

[root@server~]# ll
total 5
-rw-r--r--.1 root root 27312 Dec  7 21:28install.log
-rw-r--r--.1 root root  7572 Dec  7 21:27 install.log.syslog
-rw-r--r--.1 root root   276 Dec 10 22:12userinfo.sh
-rw-------.1 root root     0 Dec  9 20:39 yum.log
[root@server~]# ll /sh/
total 4
-rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh
[root@server~]#
[root@server~]# mv -n userinfo.sh /sh/
 [root@server ~]# ll /sh/
total 4
-rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh
 [root@server ~]#

7:多个选项同时使用,后选项生效

[root@server~]# ll
total 5
-rw-r--r--.1 root root 27312 Dec  7 21:28install.log
-rw-r--r--.1 root root  7572 Dec  7 21:27 install.log.syslog
-rw-r--r--.1 root root   276 Dec 10 22:12userinfo.sh
-rw-------.1 root root     0 Dec  9 20:39 yum.log
[root@server~]# ll /sh/
total 4
-rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh
[root@server~]# mv -v -n -f userinfo.sh /sh/
`userinfo.sh‘-> `/sh/userinfo.sh‘
[root@server~]# ll /sh/
total 8
-rw-r--r--.1 root root 276 Dec 10 22:20 userinfo.sh
[root@server~]#

8:移动目录

命令:dir1 dr2

[root@server~]# ll test/
total 4
-rw-r--r--.1 root root   0 Dec 10 22:05 autoadd.sh
-rw-r--r--.1 root root   0 Dec 10 22:05 autodel.sh
-rw-r--r--.1 root root 239 Dec  9 21:25 iflogin.sh
[root@server~]# ll /sh/
total 8
-rw-r--r--.1 root root  276 Dec 10 22:20 userinfo.sh
-rw-r--r--.1 root root  276 Dec 10 22:13userinfo.sh~
[root@server~]# mv test/ /sh/test
[root@server~]# ll /sh/
total 12
drwxr-xr-x.2 root root 4096 Dec 10 22:29 test
-rw-r--r--.1 root root  276 Dec 10 22:20 userinfo.sh
-rw-r--r--.1 root root  276 Dec 10 22:13userinfo.sh~
[root@server~]#

说明:

如果目录dir2不存在,将目录dir1改名为dir2;否则,将dir1移动到dir2中。


本文出自 “linux菜鸟” 博客,请务必保留此出处http://geekb0y.blog.51cto.com/10743719/1881562

一天一个Linux基础命令之切换目录移动命令mv