cp和mv对文件和链接影响的区别

有文件a,a1为其硬链接,即: ln a a1

  现在有文件b,对其进行以下两种操作:

    1. mv b a

    2. cp b a

      问这两种操作对a1有何影响?

 

     这个问题以前还真没关注过,之前的项目的做法是对一个文件用ln old back, 然后mv back histroy/,过一段时间若有新文件产生是进行mv new old操作并做类似的backup操作,没有想过在做mv new old的时候是否对之前的back文件造成任何的影响(毕竟backup文件在不出问题的情况下没人去关心)。

  今天做了一个实验搞明白了其中的奥秘。

  1. 创建文件a 和 ln a a1

  2. 创建文件b

 

  

  3. 执行mv b a

  

  可以看出a的inode变为了b的inode,而a1不变。并且a的变为b文件的内容,a1内容不变。

  而且a1对应的inode的引用数变为了1。

  4. 将环境重置

 

  

  5. 执行 cp b a

 

  

  可以看出inode和引用数没有发生变化, 但是a和a1的内容变为了b的内容。

  6. 执行 cp a a2

 

  

  这时可以看出a2的inode已经和a、a1不同,并且a,a1的inode和引用数都没有发生变化。

 

  结论: mv 操作只是改变文件的inode,并没有对inode所指向的磁盘block做任何的改动。

      cp操作是改变(创建)inode所指向的block(在创建时,会分配新的block)。

 

      注:cp -i选项不在此讨论范围内。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值