mv 命令

--no-target-directory 参数确保对目录进行重命名而不是移动

https://www.gnu.org/software/coreutils/manual/html_node/Target-directory.html#Target-directory

‘--no-target-directory’
Do not treat the last operand specially when it is a directory or a symbolic link to a directory. This can help avoid race conditions in programs that operate in a shared area. For example, when the command ‘mv /tmp/source /tmp/dest’ succeeds, there is no guarantee that /tmp/source was renamed to /tmp/dest: it could have been renamed to /tmp/dest/source instead, if some other process created /tmp/dest as a directory. However, if mv -T /tmp/source /tmp/dest succeeds, there is no question that /tmp/source was renamed to /tmp/dest. In the opposite situation, where you want the last operand to be treated as a directory and want a diagnostic otherwise, you can use the --target-directory (-t) option.
# 将 source 目录重命名为 dest ,如果 dest 存在,则将 source 放到 dest 目录下。
[root@localhost ~]# mv source dest # 将 source 目录重命名为 dest ,如果 dest 存在,则提示是否覆盖。
[root@localhost ~]# mv -T source dest
mv: overwrite ‘dest’? y
mv: cannot move ‘source’ to ‘dest’: File exists

场景 通配符匹配文件或目录

通配符:
* 匹配任意个字符
? 匹配单个任意字符

格式

<dir>/* 移动指定目录下所有源到目标目录
<dir>/*xxx 后缀
<dir>/xxx* 前缀
<dir>/*xxx* 包含
<dir>/?.xxx 名称为单个字符的 xxx 文件

实战

# 全匹配
[root@localhost ~]# mv test/* dev
# 后缀匹配
[root@localhost ~]# mv dev/*.txt test/
# 前缀匹配
[root@localhost ~]# mv jie* dev
# 包含匹配
[root@localhost ~]# mv *ea* dev # 将匹配如 a.txt 不会匹配 ab.txt 。? 不是可选,而是表示任意单个字符
[root@localhost ~]# mv test/a?.txt dev [root@localhost ~]# mv *a??.txt dev # 可以指定带通配符的多个源
[root@localhost ~]# mv dev/* test/* ./

bugs

# 提示没有找到文件或目录,当指定多个源时,其他存在的源会正常执行。注意这仅仅只是提示。
mv: cannot stat ‘dev/*’: No such file or directory # 这只是提示
[root@localhost ~]# mv dev/* test/* ./
mv: cannot stat ‘dev/*’: No such file or directory 提示 dev/* 没有匹配到任何文件或目录
mv: cannot stat ‘test/*’: No such file or directory 提示 test/* 没有匹配到任何文件或目录
[root@localhost ~]# ll dev
total 0
[root@localhost ~]# ll test
total 0

场景 移动多个文件或目录到指定目录

格式

mv [OPTION]... SOURCE... DIRECTORY

实战

最后一个参数为目标,当移动多个文件或目录到指定目录时,最后一个参数必须是已存在的目录。
[root@localhost ~]# mv a/c.txt a.txt b.txt bak

场景 重命名文件或目录

格式

mv [OPTION]... [-T] SOURCE DEST

实战

# 重命名文件
[root@localhost test]# ll
total 0
-rw-r--r--. 1 root root 0 Aug 2 09:53 a.txt
[root@localhost test]# mv a.txt b.txt
[root@localhost test]# ll
total 0
-rw-r--r--. 1 root root 0 Aug 2 09:53 b.txt
# 重命名目录
[root@localhost test]# ll
total 0
drwxr-xr-x. 2 root root 6 Aug 2 09:55 dev
[root@localhost test]# mv dev pro
[root@localhost test]# ll
total 0
drwxr-xr-x. 2 root root 6 Aug 2 09:55 pro

Linux 命令 mv的更多相关文章

  1. Linux 命令 - mv: 移动或重命名文件

    命令格式 cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY ...

  2. linux命令 mv

    后缀--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份: -b:当文件存在时,覆盖前,为其创建一个备份: -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目 ...

  3. 【LINUX命令】之MV

    linux下重命名文件或文件夹的命令mv既可以重命名,又可以移动文件或文件夹. 例子:将目录A重命名为B mv A B 例子:将/a目录移动到/b下,并重命名为c mv /a /b/c 注意: mv命 ...

  4. linux命令(7):mv命令

    mv命令 mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] ...

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

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

  6. linux 命令随笔 ls cd pwd mkdir rm mv cp cat nl

    Linux 命令练习 ls命令 ls就是list的简写,目的是打印当前目录下的清单 格式 ls[选项][目录名] 常用参数 -a –all 列出目录下的所有文件,包括以 . 开头的隐含文件 -l 除了 ...

  7. 【Linux基础】常用Linux命令: cd, cp, ls, mkdir, mv, rm, su, uname

    常用Linux命令:cd, cp, ls, mkdir, mv, rm, su, uname cd命令:切换当前工作目录至 dirName(目录参数) 其中 dirName 可为绝对路径或相对路径.若 ...

  8. Linux 命令之mv

    mv命令也是Linux中很常见命令 作用:可以用来移动文件或者将文件改名 命令格式: mv [选项] 源文件或目录 目标文件或目录 命令参数: -b :若需覆盖文件,则覆盖前先行备份. -f :for ...

  9. Linux命令-目录处理命令:mv

    注意:在linux下面,剪切文件和改名是同一个命令mv,而不是两个独立的命令. mv /tmp/beijing/chaoyangqu /root 移动chaoyangqu目录到root目录下面 mv ...

随机推荐

  1. JAVA基础系列:内部类获取外部类的成员变量

    内部类获取外部类的成员变量,使用 外部类类名.this.变量名 的形式获取 public class Outer { public String name = "outer"; c ...

  2. java web开发入门七(mybatis)基于intellig idea

    mybatis 一. 入门开发步骤 1.导入相关jar包 mybatis3.4.2核心开发包 asm-5.1.jarcglib-3.2.4.jarcommons-logging-1.1.3.jarlo ...

  3. Java代码中对IP进行白名单验证

    来自:https://www.cnblogs.com/shinubi/p/6723003.html public class ipUtil { // IP的正则,这个正则不能验证第一组数字为0的情况 ...

  4. Docker笔记:常用服务安装——Nginx、MySql、Redis(转载)

    转载地址:https://www.cnblogs.com/spec-dog/p/11320513.html 开发中经常需要安装一些常用的服务软件,如Nginx.MySql.Redis等,如果按照普通的 ...

  5. SpringBoot第十篇:thymeleaf详解

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/10931435.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   Sprin ...

  6. SPA框架 Angular、React、Vue

    指尖前端重构(React)技术调研分析   摘要:重构前的技术文档调研与分析,包括技术选型为什么选择react,应用过程中的注意事项等. 一.为什么选择React React是当前前端应用最广泛的框架 ...

  7. 解决python错误 UnicodeDecodeError: 'gb2312' codec can't decode byte 0x8b in position 1: illegal multibyte sequence

    报错的代码: url= 'http://kaijiang.500.com/shtml/ssq/19001.shtml' page =urllib.request.urlopen(url) conten ...

  8. 固定定位导致$(window).scrollTop();获取滚动后到顶部距离总是为0

    如下移动端索引列表页面(点击某元素后弹出的页面)    我想用 $(window).scrollTop(); 获取页面滚动后距离顶部的距离,但获取到的值总是0 期间查了很久,但都无疾而终,后来看到一篇 ...

  9. 如何解决aws解绑银行卡问题?

    首先先来说明一下我自己的情况? 一年的免费使用 前提:没有开启任何的实例服务 先贴一条官方的解释 关于我小白一个.学校课程要求使用aws,注册之后在网络上看到一堆人踩坑,aws的扣费就是个坑! 预授权 ...

  10. [转帖]银河麒麟Kydroid 2.0全新发布:原生支持海量安卓APP

    银河麒麟Kydroid 2.0全新发布:原生支持海量安卓APP https://news.cnblogs.com/n/652299/将手机操作系统 转移到 桌面 跟chromebook 类似的策略吧 ...