Home Linux mv命令
Post
Cancel

Linux mv命令

作用

重命名、覆盖或移动文件。

参数

1
2
3
mv [options] existing-file new-filename
mv [options] existing-file-list directory
mv [options] existing-directory new-directory
  • 第一种形式:
    existing-file是需要重命名的文件路径;
    new-filename是文件的新路径名,用于重命名或覆盖。
  • 第二种形式:
    existing-file是需要移动的文件路径列表;
    directory是文件需要移动到的新目录,用于移动。
  • 第三种形式:
    existing-file是需要重命名的目录路径;
    new-directory是目录的新路径名,用于重命名或覆盖。

选项

1
2
3
4
5
-b  如果已存在相同文件名,则覆盖前进行备份
-f  如果已存在相同文件名,而用户不具有写的权限,则强制覆盖
-i  如果已存在相同文件名,覆盖前提示用户进行确认
-u  比较原文件与目标文件修改时间,如果目标文件较新则不覆盖
-v  列出所有被移动或重命名的文件

示例

  • 重命名

    1
    
      $ mv demo1.txt demo2.txt    # 重命名文件
    
  • 对已存在的文件覆盖前进行确认,y或Y开头的字符串表示确定,其余任意字符表示否定

    1
    
      $ mv demo2.txt -i demo.txt    # 是否覆盖"demo.txt"? y
    
  • 移动目录,此处将cde目录移动到abc目录中

    1
    
      $ mv cde abc
    
  • 重命名目录,此处将abc目录重命名为dir目录

    1
    
      $ mv abc dir
    
  • mv -u,确认修改时间再判断是否覆盖,此处time2.txt的修改时间比time1.txt的修改时间新,所以覆盖失败

    1
    
      $ mv time1.txt -u time2.txt
    
  • mv -v,列出移动或覆盖时的信息

    1
    
      $ mv time1.txt -v time2.txt 
    
  • mv -b,覆盖时进行备份,所备份的文件尾部有个~

    1
    
      $ mv -b aa.txt bb.txt
    

Tips

  • 在Linux中,覆盖和重命名的概念几乎是一样的,没有Windows中所谓的rename这一说法。
  • 选项可以写在任意位置,可以mv aa -v bb,也可以mv -v aa bb,还可以mv aa bb -v
This post is licensed under CC BY 4.0 by the author.