一天一个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的主要内容,如果未能解决你的问题,请参考以下文章

Linux 基础入门

Linux基础指令入门

linux-14基础命令之-复制(cp)移动(mv),删除(rm),拷贝文件(dd)

腾讯云-Linux 基础入门

一天一个Linux基础命令之目录管理类命令cd

一天一个Linux基础命令之目录管理类命令cd