linux命令 mv

来源:互联网 发布:jsp选课系统项目源码 编辑:程序博客网 时间:2024/05/17 21:40
  1. 命令格式
    mv [选项源文件或目录 目标文件或目录
  2. 常用选项

    -b :若需覆盖文件,则覆盖前先行备份。 

    -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖。

    -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

    -u :若目标文件已经存在,且 source 比较新,才会更新(update)

    -t  : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后


  3. 命令说明
    1. mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文 件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或 目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢 失。

    2.  # mv file1 file2 file3
      对于mv命令,只有最后一个是目标,此前所有的全部是源,也就意味它是不允许一个源多个目标或者 多个源多个目标,上述只有file3是目标,file12是源。

    3. # mv /tmp/root.inittab  /var/tmp/
      将源剪切过去,并保留原文件名。

    4. # mv /tmp/root.inittab  /var/tmp/abc

    5. # mv /tmp/dir1  /var/tmp/abc  dir1为目录

      1. 如果abc不存在  将源剪切过去,并改名为abcadc为目录。
      2. abc存在,但是abc是个文件,会报错。
      3. abc存在,且是个目录,把源剪切到abc下,并保留原来的名字。

    6.  # mv abc mn

      1. 如果mn不存在,将abc移动到当前目录下并重命名mn,即重命名。重命名不管是目录还是文件,只要在同一个目录下,都能执行。
      2. 如果mn存在,将abc移动到mn目录下。
      3. 如果abcmn的格式不一致,应该会报错,此处以后碰到再修正。

    7.  mv -f file1 file2
      将文件file1改名为file2,即使file2存在,也是直接覆盖掉。f=force, do not prompt before overwriting。这是个危险的选项,最好不用加上它。


  4.  命令示例(来自codingstandards的博客

    1. 文件改名的例子

         [root@jfht ~]# ls fangsong.ttf
         fangsong.ttf
         [root@jfht ~]# mv fangsong.ttf 仿宋_GB2312.ttf
         [root@jfht ~]# ls fangsong.ttf 仿宋_GB2312.ttf 
         ls: fangsong.ttf: 没有那个文件或目录
         仿宋_GB2312.ttf
         [root@jfht ~]# mv 仿宋_GB2312.ttf fangsong.ttf
         [root@jfht ~]# ls fangsong.ttf 仿宋_GB2312.ttf
         ls: 仿宋_GB2312.ttf:没有那个文件或目录
         fangsong.ttf
         [root@jfht ~]#

    2. 移动文件的例子
         最近发现/目录下有很多日志文件(某个日志路径配置有问题),想把它清除掉,先移动到/tmp目录中,tmpwatch会自动帮 你去删除它们。[root@web ~]# ls /LOG* | wc -l
    3484
         [root@web ~]# mv /LOG* /tmp
         [root@web ~]# ls /LOG* | wc -l
         ls: /LOG*: 没有那个文件或目录

         [root@web ~]#

    3.mv是一个别名
         [root@web tmp]# type -a mv
         mv is aliased to `mv -i'
         mv is /bin/mv
         [root@web tmp]# touch 1.txt 2.txt
         [root@web tmp]# mv 1.txt 2.txt
         mv:是否覆盖“2.txt? y
         [root@web tmp]#


  5. linux命令目录

 

0 0
原创粉丝点击