一天一个Linux基础命令之切换目录移动命令mv
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一天一个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
[[email protected]~]# ls anaconda-ks.cfg iflogin.sh info.sh install.log install.log.syslog yum.log [[email protected]~]# mv info.sh /sh [[email protected]~]# ls /sh/ info.sh [[email protected]~]#
例2:将/sh目录下的info.sh改名,改为userinfo.sh
命令:mv /sh/info.sh /sh/userinfo.sh
[[email protected]~]# mv /sh/info.sh /sh/userinfo.sh [[email protected]~]# ls /sh userinfo.sh [[email protected]~]#
例3:移动多个文件到/sh目录下,并显示移动信息
命令:mv -v iflogin.shautoadd.sh autodel.sh /sh
[[email protected]~]# ls anaconda-ks.cfg autoadd.sh autodel.sh iflogin.sh install.log install.log.syslog yum.log [[email protected]~]# mv -v autoadd.sh autodel.sh iflogin.sh /sh `autoadd.sh‘-> `/sh/autoadd.sh‘ `autodel.sh‘-> `/sh/autodel.sh‘ `iflogin.sh‘-> `/sh/iflogin.sh‘ [[email protected]~]# ls /sh/ autoadd.sh autodel.sh iflogin.sh userinfo.sh [[email protected]~]#
通过上面的ls命令得知在当前目录中有3个以sh结尾的文件,并且都是我们要移动的文件所已我们可以用以下命令,也可以实现上面的操作
mv -v *.sh /sh
例4:目标文件存在则备份目标文件,然后把本文件移动过去,并显示详细的移动信息
命令:mv -bv userinfo.sh /sh
[[email protected]~]# ll /sh/ total 8 -rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh [[email protected]~]# 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 [[email protected]~]# mv -bv userinfo.sh /sh mv:overwrite `/sh/userinfo.sh‘? y `userinfo.sh‘-> `/sh/userinfo.sh‘ (backup: `/sh/userinfo.sh~‘) [[email protected]~]# [[email protected]~]# 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~ [[email protected]~]#
例5:目标文件如果存在并且比源文件新,则不移动
命令:mv -uv userinfo.sh /sh
[[email protected]~]# 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 [[email protected]~]# ll /sh/ total 4 -rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh [[email protected]~]# mv -u userinfo.sh /sh/ [[email protected]~]# ll /sh/ total 4 -rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh [[email protected]~]#
例6:如果文件存在则不移动
命令:mv -n userinfo.sh /sh
[[email protected]~]# 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 [[email protected]~]# ll /sh/ total 4 -rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh [[email protected]~]# [[email protected]~]# mv -n userinfo.sh /sh/ [[email protected] ~]# ll /sh/ total 4 -rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh [[email protected] ~]#
例7:多个选项同时使用,后选项生效
[[email protected]~]# 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 [[email protected]~]# ll /sh/ total 4 -rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh [[email protected]~]# mv -v -n -f userinfo.sh /sh/ `userinfo.sh‘-> `/sh/userinfo.sh‘ [[email protected]~]# ll /sh/ total 8 -rw-r--r--.1 root root 276 Dec 10 22:20 userinfo.sh [[email protected]~]#
例8:移动目录
命令:dir1 dr2
[[email protected]~]# 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 [[email protected]~]# 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~ [[email protected]~]# mv test/ /sh/test [[email protected]~]# 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~ [[email protected]~]#
说明:
如果目录dir2不存在,将目录dir1改名为dir2;否则,将dir1移动到dir2中。
本文出自 “linux菜鸟” 博客,请务必保留此出处http://geekb0y.blog.51cto.com/10743719/1881562
以上是关于一天一个Linux基础命令之切换目录移动命令mv的主要内容,如果未能解决你的问题,请参考以下文章