重命名、覆盖或移动文件

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 是目录的新路径名,用于重命名或覆盖

选项

-b                如果已存在相同文件名,则覆盖前进行备份

-f                 如果已存在相同文件名,而用户不具有写的权限,则强制覆盖

-i                 如果已存在相同文件名,覆盖前提示用户进行确认

-u                比较原文件与目标文件修改时间,如果目标文件较新则不覆盖

-v                列出所有被移动或重命名的文件

示例

mv

$ mv demo1.txt demo2.txt
$ ls
demo2.txt

重命名文件

mv -i

$ ls
demo2.txt demo.txt
$ mv demo2.txt -i demo.txt
mv:是否覆盖"demo.txt"? y

对已存在的文件覆盖前进行确认,y或Y开头的字符串表示确定,其余任意字符表示否定

mv 不具备写权限的文件名

$ ls -l
总用量 0
-rw-r--r-- 1 root root 0 1月 8 13:31 cc
-rw-r--r-- 1 siu siu 0 1月 8 13:24 dd
$ mv dd cc
mv:是否覆盖"cc",而不理会权限模式0644 (rw-r--r--)? y
$ ls
cc

此处cc的所有人和组都是root,而我当前用户是siu,覆盖时会要求确认

mv -f 不具备写权限的文件名

$ ls -l
总用量 0
-rw-r--r-- 1 root root 0 1月 8 13:34 aa
-rw-r--r-- 1 siu siu 0 1月 8 13:34 bb
$ mv bb -f aa
$ ls
aa

与上面一样,只不过此处加了 -f 选项,覆盖时强制执行而不提示

mv 移动目录

$ ls
abc cde
$ mv cde abc
$ ls
abc
$ cd abc/
$ ls
cde

此处将cde目录移动到abc目录中

mv 重命名目录

$ ls
abc
$ mv abc dir
$ ls
dir

此处将abc目录重命名为dir目录,mv abc ../可将abc移动到父目录,此处灵活多变

mv -u

$ ls -l
总用量 0
-rw-r--r-- 1 siu siu 0 1月 8 13:43 time1.txt
-rw-r--r-- 1 siu siu 0 1月 8 13:44 time2.txt
$ mv time1.txt -u time2.txt
$ ls
time1.txt time2.txt

确认修改时间再判断是否覆盖,此处time2.txt的修改时间比time1.txt的修改时间新,所以覆盖失败

mv -v

$ mv time1.txt -v time2.txt
"time1.txt" -> "time2.txt"
$ ls
time2.txt

列出移动或覆盖时的信息

mv -b

$ mv -b aa.txt bb.txt
$ ls
bb.txt bb.txt~

覆盖时进行备份,所备份的文件尾部有个~

Tips

1.在Linux中,覆盖和重命名的概念几乎是一样的,没有Windows中所谓的rename这一说法

2.选项你可以写在任意位置,可以mv aa -v bb,也可以 mv -v aa bb,还可以 mv aa bb -v

简明Linux命令行笔记:mv的更多相关文章

  1. 简明Linux命令行笔记:touch

    创建文件或修改文件时间 touch [options] file-list 参数 file-list是touch将要创建或更新的文件路径名 选项 -a                    只更新访问 ...

  2. Linux命令行下cp,rm,mv命令的使用

    以下的内容来源于<鸟哥的私房菜> Linux命令行下的复制.删除与移动:cp,rm,mv cp(copy)复制        cp这个命令的用途很多,除了单纯的复制之外,还可以创建链接文件 ...

  3. 【读书笔记】Linux命令行与Shell脚本编程大全

    Linux命令行与Shell脚本编程大全 5.2 shell 的父子关系 命令分组 Command Grouping 主要有两种形式: 一种以小括号包括,命令之间以冒号分隔.也被称为 进程列表: 注意 ...

  4. Linux命令行与命令

    Linux命令行与命令   作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Linux的命令是很重要的工具,也往往是初学者最大的瓶 ...

  5. 给新手的 10 个有用 Linux 命令行技巧

    我记得我第一次使用 Linux 的时候,我还习惯于 Windows 的图形界面,我真的很讨厌 Linux 终端.那时候我觉得命令难以记忆,不能正确使用它们.随着时间推移,我意识到了 Linux 终端的 ...

  6. [转]使用Linux命令行测试网速

    装speedtest-cli speedtest-cli是一个用Python编写的轻量级Linux命令行工具,在Python2.4至3.4版本下均可运行.它基于Speedtest.net的基础架构来测 ...

  7. linux命令学习笔记

    操作文件和文件夹: copy: $ cp file1 file2 $ cp -r dir1 dir2 move: $ mv file .. $ mv file dir/ rename: $ mv fi ...

  8. SLAM+语音机器人DIY系列:(一)Linux基础——3.Linux命令行基础操作

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

  9. 使用Linux命令行测试网速

    安装speedtest speedtest是一个用Python编写的轻量级Linux命令行工具,在Python2.4至3.4版本下均可运行.它基于Speedtest.net的基础架构来测量网络的上/下 ...

随机推荐

  1. ORA-00600: internal error code, arguments: [kcratr1_lastbwr], [], [], [], [], [], [], []

    今天在PlateSpin Forge(关于PlateSpin相关介绍,请见最下面部分简单介绍) 复制出来的一台数据库服务器上,测试数据库能否正常启动时,遇到了"ORA-00600: inte ...

  2. PHP中require和include路径问题总结

    1 绝对路径.相对路径和未确定路径 相对路径 相对路径指以.开头的路径,例如 ./a/a.php (相对当前目录) ../common.inc.php (相对上级目录), 绝对路径 绝对路径是以 / ...

  3. NHibernate Profiler使用方法

    NHibernate Profiler是一款可以监视NHibernate里的sql语句的工具 1.下载NHibernate Profiler 2.在你的NHibernate项目中添加引用(在NHibe ...

  4. Loadrunner代理录制设置

    使用LR代理录制原理 启用LR代理服务器监听设置好的端口号是否有请求信息发送给服务器,有请求时,代理服务器接收带请求,并转发给对应的系统服务器,LR从而获取到请求的信息与数据,生成脚本. 使用代理的前 ...

  5. x01.os.20: compile linux-0.11 on the ubuntu

    为什么学习 linux 正如不能依靠美国的 GPS 为我们的导弹指示目标一样,很难想像用运行 windows 的电脑去同美国进行信息战.而朝鲜的网络崩溃,再次警示国人,信息战.网络战离我们并不遥远.l ...

  6. laravel5源码讲解整理

    来源:http://yuez.me/laravel-yuan-ma-jie-du/?utm_source=tuicool&utm_medium=referral 目录 入口文件 index.p ...

  7. Jenkins部署到远程(Linux服务器)

    接着上次的说,上次只是实现了本地自动化部署,这种情况只是针对开发环境和部署环境在同一台机器时适用.不过,一般情况下,我们都会要把项目部署到远程Linux服务器上,所以这节的主要内容是: 1.部署开发环 ...

  8. FineReport中hadoop,hive数据库连接解决方案

    1. 描述 Hadoop是个很流行的分布式计算解决方案,Hive是基于hadoop的数据分析工具.一般来说我们对Hive的操作都是通过cli来进行,也就是Linux的控制台,但是,这样做本质上是每个连 ...

  9. Android(Linux)控制GPIO方法二

    前文<Android(Linux)控制GPIO的方法及实时性分析>主要使用Linux shell命令控制GPIO,该方法可在调试过程中快速确定GPIO硬件是否有问题,即对应的GPIO是否受 ...

  10. python3使用pyqt5制作一个超简单浏览器

    我们使用的是QWebview模块,这里也主要是展示下QWebview的用法. 之前在网上找了半天的解析网页的内容,都不是很清楚. 这是核心代码: webview = Qwebview() webvie ...