有文件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选项不在此讨论范围内。

【原文地址】http://www.cnblogs.com/wwillforever/archive/2012/01/30/2332396.html

转载于:https://www.cnblogs.com/crazypig/archive/2012/05/23/2514883.html

[linux]cp和mv对文件和链接影响的区别相关推荐

  1. Linux – cp: omitting directory 复制文件失败

    Linux – cp: omitting directory 复制文件失败: 注意,如果执行时出现"cp: omitting directory"的提示信息,但使用mv则可以成功剪 ...

  2. linux cp 和mv的区别,linux下mv和cp命令 移动和复制文件

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

  3. Linux cp命令:复制文件和目录

    cp 命令,主要用来复制文件和目录,同时借助某些选项,还可以实现复制整个目录,以及比对两文件的新旧而予以升级等功能. cp 命令的基本格式如下: [root@localhost ~]# cp [选项] ...

  4. Linux cp 与 mv 命令

    noarch是no architecture的缩写,说明这个包可以在各个不同的cpu上使用 包有这么几种(后缀):*.386.rpm,*.486.rpm,*.586. rpm,*.686.rpm,这是 ...

  5. linux cp 时 略过文件,CentOS下执行cp命令式提示略过文件夹

    今天在CentOS下复制一个文件夹到另一个文件夹的时候cp ./res /usr 的时候出现了问题,提示我的是: cp略过了文件夹 后来我找了一下 在网上search了一下CP命令的用法: CP命令 ...

  6. linux cp无法创建一般文件夹,cp: 无法创建普通文件 : 文件已存在

    背景 碰到一个偶现的编译出错问题,如图 报错的信息是 cp: 无法创建普通文件"xxx": 文件已存在 排查原因 看了下 Makefile,这句非常简单,就是 cp ./xxx . ...

  7. Linux标准I/O与文件I/O操作的区别

    一.先来了解下什么是文件I/O和标准I/O: 文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O).不带缓存指的是每个read,write都调用内核中的一个系统调用.也就是一般所 ...

  8. Linux 命令之 mv -- 移动文件/重命名文件

    文章目录 命令介绍 语法格式 常用选项 命令示例 (一)文件重命名 (二)目录重命名 (三)移动目录 (四)移动目录且重命名 (五)将一个目录下的内容移动到另外一个目录下 (六)移动文件 (七)移动多 ...

  9. linux cp改文件名,更改Linux `cp`命令以复制文件组

    问题: 我想复制一个组文件,但不想逐个输入名称$ ls gmail-meta3* gmail-meta3 gmail-meta3-REC-1558392194-26467821 gmail-meta3 ...

最新文章

  1. 微信公众号开发用书php,php微信公众号开发(3)php实现简单微信文本通讯
  2. Android基于mAppWidget实现手绘地图(三)--环境搭建
  3. RuntimeError: Model class cmdb.models.UserInfo doesn't declare an explicit app_label
  4. 数组去重的4种方法(Which one is the fastest???嘻嘻嘻....)
  5. 开源库Magicodes.Storage正式发布
  6. 如何在centos中找到安装mysql_centos上如何安装mysql
  7. 抖音国际版TikTok因收集儿童信息在美被罚570万美元
  8. Python标准库中的random
  9. 阿里云loT物联网学习
  10. 蓝桥杯单片机第九届 省赛 彩灯控制器
  11. adobe官方卸载工具:Creative Cloud Cleaner Tool Mac版
  12. excel常用函数及快捷键
  13. 云计算到底有哪些魅力 云计算就业前景好不好
  14. 热力图pycharm
  15. html修改文本框样式,HTML实用文本框样式
  16. Unity3D教学 开发简单版第一人称射击游戏 可以多人联机(附源码)
  17. 华为畅享20plus能更鸿蒙不,甘南收购华为畅享20Plus尾插排线数据线耳机
  18. linux启动tomcat权限不足
  19. Rails博客软件 Enki
  20. 马云登陆雅虎首次发表演讲稿全文。

热门文章

  1. OpenSSL 编程 - RSA 加密解密
  2. 关于Linux系统下在使用close关闭串口设备时引起的内核崩溃问题解决方法
  3. 【鬼网络】之DHCP原理与配置
  4. oracle虚拟机导入表,在Linux虚拟机上安装Oracle数据库超完整版!)
  5. 太阳花浏览器_一道浏览器面试题,就能看出你的前端功底
  6. three.js加载3d模型_可加载5亿多边形,InsiteVR推Quest端BIM协作应用《Resolve》
  7. Longest Increasing Subsequence(LIS入门dp)
  8. mysql安装报错 1130_关于Linux编译安装会无法远程登录,报错:1130-host ... is not allowed to connect to this MySql server...
  9. 阿里云边缘云,驱动行业新价值
  10. Java 的这些坑,你踩到了吗?