引入:

精简回答版:重命名的本质仍是移动覆盖 ,所以不存在应该如何区分的问题

最近学习到linux基础命令中的mv命令,了解到mv命令的作用是对文件的移动和重命名,但自己一直想不明白系统是如何分辨该文件是移动or重命名,所以做了如下测试:

mv命令格式:mv 源文件 目标文件

根据猜想测试:

猜想1:目标文件若不存在,就创建目标文件,然后将源文件覆盖新目标文件达到重命名的目的

test1:源文件和目标文件在同一目录下,测试重命名,利用inode信息判断是否是同一个文件

在/root/test1目录下新建文件testmv_1.txt

记录testmv_1.txt的inode & 使用mv命令将testmv_1.txt重命名 & 查看重命名后文件的inode

结果:目标文件inode信息和源文件inode信息相同,所以重命名的本质依旧是移动覆盖

猜想2:有猜想1的结果发散:若目标文件存在且和源文件有不同的内容,移动文件之后目标文件inode也变更为源文件inode

test2:在不同目录下分别创建源文件和目标文件

源文件为/root/test1/testmv_2.txt

目标文件为/root/test2/testmv_3.txt

使用mv命令 & 查看目标文件的inode

结果:目标文件的inode更改为源文件的inode(17168517在上文中提到过,是testmv_2.txt的inode)

结论:

mv命令可以看作为剪切,将源文件的全部信息覆盖给目标文件,不仅仅是文件的内容。

重命名的本质也是移动覆盖,因为目标文件不存在便创建,之后用源文件覆盖全部信息。

关于mv命令,系统是如何区分是移动还是重命名的更多相关文章

  1. [Perl]Windows 系统 Unicode 文件名操作(新建、重命名、枚举、复制)全攻略

    [Perl] Windows 系统 Unicode 文件名操作(新建.重命名.枚举.复制)全攻略 环境 XP/WIN7 Perl v5.16 编辑整理:PerlMonk.523066680 常见的那些 ...

  2. Windows 系统 Unicode 文件名操作(新建、重命名、枚举、复制)全攻略

    常见的那些文件操作函数都不支持,于是为了达到目的,需要各种方法配合,应该是不如其他语言方便.我只是想看看Perl到底是否适合做这件事,于是折腾了一回. 文件的建立: 模块:Win32 Code: [全 ...

  3. linux每天一小步---mv命令详解

    1 命令功能 mv命令用来移动文件及目录或者重命名文件及目录,它是move的缩写,cp命令与mv命令在很多功能上都非常相似,但是又具有很大的区别,其中组大的区别在于cp命令的使用会保留源文件和目录,而 ...

  4. Redis危险命令重命名、禁用

    Redis的危险命令主要有: flushdb,清空数据库 flushall,清空所有记录,数据库 config,客户端连接后可配置服务器 keys,客户端连接后可查看所有存在的键 作为服务端的redi ...

  5. 【批处理】ren命令_批量重命名文件

    [ren命令] 说明:ren是“rename(重命名)”的简写: 命令:REN [Drive:][path] <old filename> <new filename> 解释: ...

  6. linux中mv命令使用详解

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

  7. linux下mv命令使用方法

    1.作用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中.该命令等同于DOS系统下的ren和move命令的组合.它的使用权限是所有用户.2.格式mv [options] 源文件或目录 目标 ...

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

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

  9. 每天一个 Linux 命令(7):mv命令

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

  10. 每天一个linux命令(7):mv命令

    mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 企业中常用的 [root@ local]# ...

随机推荐

  1. Dubbo架构设计与源码解析(一) 架构设计

    作者:黄金 一.架构演变 单应用架构 ----> 垂直架构 ----> 分布式架构 ----> 微服务架构 ----> 云原生架构 二.Dubbo总体架构 1.角色职能 • C ...

  2. mac中virtualBox添加主机网络报错VBoxNetAdpCtl: Error while adding new interface: failed to open /dev/vboxnetctl: No such file or directory

    mac中virtualBox添加主机网络报错 现场复原 解决方法 参考 mac中virtualBox添加主机网络报错 现场复原 virtual box添加主机网络报错 VBoxNetAdpCtl: E ...

  3. SqlSugar基础查询

    查所有 List<Student> list=db.Queryable<Student>().ToList() //select * from Student 查询总数 int ...

  4. 解决: DECODER_ERROR_CLASSES += (brotli.error,) ttributeError: module ‘brotli‘ has no attribute ‘error‘

    解决: DECODER_ERROR_CLASSES += (brotli.error,) ttributeError: module 'brotli' has no attribute 'error' ...

  5. 6.5 Windows驱动开发:内核枚举PspCidTable句柄表

    在 Windows 操作系统内核中,PspCidTable 通常是与进程(Process)管理相关的数据结构之一.它与进程的标识和管理有关,每个进程都有一个唯一的标识符,称为进程 ID(PID).与之 ...

  6. Java实现将中缀表达式转换到后缀表达式

    思路: 1.初始化两个栈 运算符栈 s1 和储存中间结果栈 s22. 从左到右扫描中缀表达式3. 遇到操作数时 压入s24. 遇到操作符 o1 时 比较其与 S1 栈顶运算符的优先级 1)如果s1为空 ...

  7. 手把手教你-把Kali Linux系统安装到U盘 【超详细】(随身携带/即插即用)

    [0-背景说明]: 1)为什么想要把Kali Linux系统安装到U盘? 之前学习渗透测试的时候,有安装过虚拟机,在虚拟机上安装Kali Linux系统,但是因为是在现有系统上安装虚拟机又安装kali ...

  8. Intel酷睿Ultra隆重登场:28W能效逆天!AI性能领先竞品5.4倍

    作为Intel 1971年首款微处理器4004诞生以来变革幅度最大的产品,代号Meteor Lake的第一代酷睿Ultra今天终于正式发布了!相关笔记本.迷你机产品也会陆续发布上市. 有关于酷睿Ult ...

  9. KB0002.对DoraCloud的桌面模板系统盘进行扩容

    KB0002.对DoraCloud的桌面模板系统盘进行扩容 DoraCloud的桌面是根据桌面模板创建的.桌面模板包含了系统盘.有时系统盘的空间不满足需求,就需要对系统盘大小进行调整. 我们以Hype ...

  10. Python-pymysql操作MySQL数据库

    一.安装pymysql py -m pip install pymysql; 二.pymysql数据库操作 1.简单示例 #coding=utf-8 import pymysql ## 打开数据库连接 ...