简明Linux命令行笔记:mv
重命名、覆盖或移动文件
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的更多相关文章
- 简明Linux命令行笔记:touch
创建文件或修改文件时间 touch [options] file-list 参数 file-list是touch将要创建或更新的文件路径名 选项 -a 只更新访问 ...
- Linux命令行下cp,rm,mv命令的使用
以下的内容来源于<鸟哥的私房菜> Linux命令行下的复制.删除与移动:cp,rm,mv cp(copy)复制 cp这个命令的用途很多,除了单纯的复制之外,还可以创建链接文件 ...
- 【读书笔记】Linux命令行与Shell脚本编程大全
Linux命令行与Shell脚本编程大全 5.2 shell 的父子关系 命令分组 Command Grouping 主要有两种形式: 一种以小括号包括,命令之间以冒号分隔.也被称为 进程列表: 注意 ...
- Linux命令行与命令
Linux命令行与命令 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Linux的命令是很重要的工具,也往往是初学者最大的瓶 ...
- 给新手的 10 个有用 Linux 命令行技巧
我记得我第一次使用 Linux 的时候,我还习惯于 Windows 的图形界面,我真的很讨厌 Linux 终端.那时候我觉得命令难以记忆,不能正确使用它们.随着时间推移,我意识到了 Linux 终端的 ...
- [转]使用Linux命令行测试网速
装speedtest-cli speedtest-cli是一个用Python编写的轻量级Linux命令行工具,在Python2.4至3.4版本下均可运行.它基于Speedtest.net的基础架构来测 ...
- linux命令学习笔记
操作文件和文件夹: copy: $ cp file1 file2 $ cp -r dir1 dir2 move: $ mv file .. $ mv file dir/ rename: $ mv fi ...
- SLAM+语音机器人DIY系列:(一)Linux基础——3.Linux命令行基础操作
摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...
- 使用Linux命令行测试网速
安装speedtest speedtest是一个用Python编写的轻量级Linux命令行工具,在Python2.4至3.4版本下均可运行.它基于Speedtest.net的基础架构来测量网络的上/下 ...
随机推荐
- mysql-7 数据检索(5)
联结(join) SQL最强大的功能之一就是能在数据检索查询的执行中联结(join)表.联结就是利用SQL的SELECT能执行的最重要的操作. 例子:此例子包含两个表,一个表是vendors , ve ...
- MySQL GROUP_CONCAT函数使用示例:如何用一个SQL查询出一个班级各个学科第N名是谁?
如何用一个SQL查询出一个班级各个学科第N名是谁? 首先贴出建表语句,方便大家本地测试: -- 建表语句 CREATE TABLE score ( id INT NOT NULL auto_incre ...
- 删除docker的运行目录出错
1. 错误类型
- InfluxDB学习之InfluxDB数据保留策略(Retention Policies)
InfluxDB每秒可以处理成千上万条数据,要将这些数据全部保存下来会占用大量的存储空间,有时我们可能并不需要将所有历史数据进行存储,因此,InfluxDB推出了数据保留策略(Retention Po ...
- maven archetype生成自定义项目原型(模板)
maven archetype可以将一个项目做成项目原型,之后只需要以此原型来创建项目,那么初始创建的项目便具有原型项目中的一切配置和代码.通俗讲就是一个项目模板. eclipse中那些快速生成mav ...
- [百度经验]window下连接mysql 错误代码 1045
连接mysql时出现错误代码 1045 Access denied for user 'root'@'localhost' (using password:YES) 百度经验:jingyan.baid ...
- 【2016-11-6】【坚持学习】【Day21】【主窗口关闭时,同步关闭它的子窗口】
本来想用委托实现的.但是又觉得没有必要. 方法如下: public MainWindow() { InitializeComponent(); this.Closing += MainWindow_C ...
- jsp前3章试题分析
/bin:存放各种平台下用于启动和停止Tomcat的脚本文件 /logs:存放Tomcat的日志文件 /webapps:web应用的发布目录 /work:Tomcat把由JSP生成的Servlet存放 ...
- 用C#调用C++DLL(x64),总是提示找不到DLL
用C#调用自己写的C++ DLL(x64),总是提示找不到DLL,调试可以,发布release老是提示找不到DLL(dll文件确定存在) 原因:Visual C++的DLL分发方式没选:调试默认选择: ...
- Python-18-Django 基础篇
1. Web 框架介绍 具体介绍Django之前,必须先介绍WEB框架等概念. Web框架:通俗地讲,就是别人已经设定好的一个web网站模板,你学习它的规则,然后「填空」或「修改」成你自己需要的样子. ...