当前位置: 首页 > news >正文

linux cp与mv那个更可靠

linux os环境下,任何小白都会用cp与mv,cp顾名思义复制一份file,mv顾名思义重命名新file。我们很少关注cp与mv的底层实现。

背景

写一个shell脚本替换现网80W+台硬件服务器上的某个文件,此时就得慎重考虑cp与mv的底层原理。

伪代码:方案1:   cp a.txt b.txt

               方案2:   cp a.txt a.txt.bak

                             mv a.txt.bak b.txt

咋一看,方案2有点多次一举,实则是基于cp与mv的底层逻辑考虑,这里假定要替换的文件不大,很快就能拷贝完。

cp底层实现

  • cp 操作本身几乎总是非原子性的。​​ 它的底层实现主要是 open()read()write()close() 系统调用(可能涉及创建中间临时文件、copy_file_range() 等优化)。

  • ​复制过程:​

    http://www.lqws.cn/news/538327.html

    相关文章:

  • MySQL5.7和8.0 破解root密码
  • 快速傅里叶变换(FFT)是什么?
  • python中学物理实验模拟:斜面受力分析
  • 圆周期性显示和消失——瞬态实现(CAD c#二次开发、插件定制)
  • Nordic nRF54L15 SoC对包含电池监测、中断处理和电源轨控制的定制 nPM1300 示例
  • springcloud 尚硅谷 看到9开头
  • 华为云鸿蒙应用入门级开发者认证 实验(HCCDA-HarmonyOS Cloud Apps)
  • 玄机抽奖Spring Web项目
  • Maven Javadoc 插件使用详解
  • [论文阅读]RaFe: Ranking Feedback Improves Query Rewriting for RAG
  • 解决uniapp vue3版本封装组件后:deep()样式穿透不生效的问题
  • react-嵌套路由 二级路由
  • 事件循环(Event Loop)机制对比:Node.js vs 浏览器​
  • python+requests接口自动化测试
  • 大脑感官:视觉系统中将感观信息转换为神经信号
  • @Autowired 和 @Resource 有什么区别?
  • Java常用设计模式详解
  • linux网络编程socket套接字
  • 【论文阅读】--Instruction Backdoor Attacks Against Customized LLMs
  • Neo4j2.0.1桌面端使用教程(简化版)
  • MySQL 锁的分类
  • WinAppDriver 自动化测试:C#篇
  • EMQ X Broker 配置HTTP 的外部鉴权接口
  • 生物化学 PCR(聚合酶链式反应)引物 制造(固相磷酰胺化学法) 购买 存储
  • 如何在x86_64 Linux上部署Android Cuttlefish模拟器运行环境
  • MySQL事物隔离级别详解
  • 笔记04:层叠的定义及添加
  • 链表基本功(相交链表)
  • Ubuntu通过防火墙管控Docker容器
  • Go语言与云原生:Kubernetes Operator开发全流程