关于mv命令,系统是如何区分是移动还是重命名

 引入:

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

最近学习到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命令可以看作为剪切,将源文件的全部信息覆盖给目标文件,不仅仅是文件的内容。

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值