[linux]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选项不在此讨论范围内。
【原文地址】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对文件和链接影响的区别相关推荐
- Linux – cp: omitting directory 复制文件失败
Linux – cp: omitting directory 复制文件失败: 注意,如果执行时出现"cp: omitting directory"的提示信息,但使用mv则可以成功剪 ...
- linux cp 和mv的区别,linux下mv和cp命令 移动和复制文件
一.mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件 ...
- Linux cp命令:复制文件和目录
cp 命令,主要用来复制文件和目录,同时借助某些选项,还可以实现复制整个目录,以及比对两文件的新旧而予以升级等功能. cp 命令的基本格式如下: [root@localhost ~]# cp [选项] ...
- Linux cp 与 mv 命令
noarch是no architecture的缩写,说明这个包可以在各个不同的cpu上使用 包有这么几种(后缀):*.386.rpm,*.486.rpm,*.586. rpm,*.686.rpm,这是 ...
- linux cp 时 略过文件,CentOS下执行cp命令式提示略过文件夹
今天在CentOS下复制一个文件夹到另一个文件夹的时候cp ./res /usr 的时候出现了问题,提示我的是: cp略过了文件夹 后来我找了一下 在网上search了一下CP命令的用法: CP命令 ...
- linux cp无法创建一般文件夹,cp: 无法创建普通文件 : 文件已存在
背景 碰到一个偶现的编译出错问题,如图 报错的信息是 cp: 无法创建普通文件"xxx": 文件已存在 排查原因 看了下 Makefile,这句非常简单,就是 cp ./xxx . ...
- Linux标准I/O与文件I/O操作的区别
一.先来了解下什么是文件I/O和标准I/O: 文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O).不带缓存指的是每个read,write都调用内核中的一个系统调用.也就是一般所 ...
- Linux 命令之 mv -- 移动文件/重命名文件
文章目录 命令介绍 语法格式 常用选项 命令示例 (一)文件重命名 (二)目录重命名 (三)移动目录 (四)移动目录且重命名 (五)将一个目录下的内容移动到另外一个目录下 (六)移动文件 (七)移动多 ...
- linux cp改文件名,更改Linux `cp`命令以复制文件组
问题: 我想复制一个组文件,但不想逐个输入名称$ ls gmail-meta3* gmail-meta3 gmail-meta3-REC-1558392194-26467821 gmail-meta3 ...
最新文章
- 微信公众号开发用书php,php微信公众号开发(3)php实现简单微信文本通讯
- Android基于mAppWidget实现手绘地图(三)--环境搭建
- RuntimeError: Model class cmdb.models.UserInfo doesn't declare an explicit app_label
- 数组去重的4种方法(Which one is the fastest???嘻嘻嘻....)
- 开源库Magicodes.Storage正式发布
- 如何在centos中找到安装mysql_centos上如何安装mysql
- 抖音国际版TikTok因收集儿童信息在美被罚570万美元
- Python标准库中的random
- 阿里云loT物联网学习
- 蓝桥杯单片机第九届 省赛 彩灯控制器
- adobe官方卸载工具:Creative Cloud Cleaner Tool Mac版
- excel常用函数及快捷键
- 云计算到底有哪些魅力 云计算就业前景好不好
- 热力图pycharm
- html修改文本框样式,HTML实用文本框样式
- Unity3D教学 开发简单版第一人称射击游戏 可以多人联机(附源码)
- 华为畅享20plus能更鸿蒙不,甘南收购华为畅享20Plus尾插排线数据线耳机
- linux启动tomcat权限不足
- Rails博客软件 Enki
- 马云登陆雅虎首次发表演讲稿全文。
热门文章
- OpenSSL 编程 - RSA 加密解密
- 关于Linux系统下在使用close关闭串口设备时引起的内核崩溃问题解决方法
- 【鬼网络】之DHCP原理与配置
- oracle虚拟机导入表,在Linux虚拟机上安装Oracle数据库超完整版!)
- 太阳花浏览器_一道浏览器面试题,就能看出你的前端功底
- three.js加载3d模型_可加载5亿多边形,InsiteVR推Quest端BIM协作应用《Resolve》
- Longest Increasing Subsequence(LIS入门dp)
- mysql安装报错 1130_关于Linux编译安装会无法远程登录,报错:1130-host ... is not allowed to connect to this MySql server...
- 阿里云边缘云,驱动行业新价值
- Java 的这些坑,你踩到了吗?