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
原文地址:http://geekb0y.blog.51cto.com/10743719/1881562