服务器通用(全架构)【深入解析文件操作中的常见问题:空洞、传输与大小差异】技术文章
了解更多银河麒麟操作系统全新产品请点击访问麒麟软件产品专区https://www.kylinos.cn/productPc/开发者专区https://developer.kylinos.cn/文档中心https://document.kylinos.cn/document/center目录一、文档概述二、主要内容2.1 文件大小差异之谜II 与 du 命令的本质区别2.1.1 命令原理对比2.1.2 空洞文件的识别方法2.2 scp 传输前后文件大小变化但 md5sum 一致的原因2.2.1 md5sum 的校验逻辑2.2.2 scp 对空洞文件的处理机制稀疏文件的特性scp 的传输逻辑2.3. 保持稀疏文件特性的解决方案使用 rsync 替代 scp2.4 总结理解文件系统与传输协议的底层逻辑一、文档概述在文件管理和操作过程中常常会遇到一些看似矛盾的现象例如使用不同命令查看文件大小存在差距、文件传输前后大小变化但校验值一致等。这些问题背后往往与文件空间稀疏文件的特性以及文件传输协议的处理方式密切相关。本文将结合技术原理与实际案例详细解析这些现象的成因与应对方法。二、主要内容2.1 文件大小差异之谜II 与 du 命令的本质区别2.1.1 命令原理对比ls -l或 ll显示文件的逻辑大小即文件中数据的理论字节数包含未实际分配磁盘空间的“空洞”部分。du -sh显示文件的实际磁盘占用量仅计算已分配物理块的空间大小忽略空洞。2.1.2 空洞文件的识别方法当文件的逻辑大小ls 结果远大于实际磁盘占用du 结果时可判定存在数据空洞。具体验证方式如下命令行验证stat --format%b %s 文件名 # %b 为块数%s 为文件大小字节若%s 数值显著大于%b×块大小默认块大小为 4KB则说明存在空洞2.2 scp 传输前后文件大小变化但 md5sum 一致的原因2.2.1 md5sum 的校验逻辑md5sum 工具用于验证文件内容的完整性它会逐字节读取文件内容并计算哈希值。对于空洞文件操作系统在读取时会将空洞部分填充为零字节因此1源文件的逻辑内容含空洞填充的零字节与目标文件的实际内容传输后写入的零字节完全一致。2即使文件传输前后存储形态不同md5sum 计算结果仍相同。2.2.2 scp 对空洞文件的处理机制稀疏文件的特性稀疏文件通过文件系统元数据标记空洞位置实际不占用物理空间读取时动态填充零字节常用于数据库快照、日志文件等场景。scp 的传输逻辑读取阶段源端 scp 读取文件的所有逻辑内容包括空洞对应的零字节。传输阶段将读取到的所有数据含零字节通过网络发送至目标端。写入阶段目标端按接收到的字节流创建新文件所有零字节均被实际写入磁盘空洞被“填满”。结果目标文件变为普通文件逻辑大小与实际磁盘占用一致导致 du 命令显示的大小增加但内容与源文件一致含零字节故 md5sum 值不变。2.3. 保持稀疏文件特性的解决方案使用 rsync 替代 scp若需在文件传输过程中保留空洞稀疏性可采用支持稀疏文件处理的工具例如 rsync 命令的--sparse参数rsync --sparse 源文件 目标路径原理rsync 会检测文件中的连续零字节区域并在目标端重建空洞避免实际写入零字节从而保持稀疏文件的存储优化特性。适用场景传输大型日志文件、数据库备份等包含大量空洞的文件时可显著减少传输数据量与磁盘占用。2.4 总结理解文件系统与传输协议的底层逻辑空洞文件的本质是文件系统优化存储的一种机制逻辑上存在数据但物理上未分配空间。命令差异的核心ls 关注逻辑大小du 关注物理占用两者分别反映文件的不同属性。传输工具的选择scp 会“展开”空间rsync 可保留稀疏性需根据实际需求如存储空间、传输效率灵活选择。通过深入理解这些技术细节可在日常运维中更高效地处理文件存储与传输问题避免因工具特性差异导致的误判与资源浪费。

相关新闻

xtu oj 1055 A if3

xtu oj 1055 A if3

题目 思路&#xff1a;把各位数字提取出来&#xff0c;重复步骤用for循环&#xff0c;所以用整数数组来存数字。每两个数字对比一次&#xff08;用for循环套for循环实现&#xff09;&#xff0c;要是相等就计数一次。有且仅有两个&#xff0c;所以yes时cnt只能1。#include<s…

2026/5/17 12:58:26 阅读更多 →
从零开发 Java 同城货运平台:货拉拉模式源码 + 部署教程

从零开发 Java 同城货运平台:货拉拉模式源码 + 部署教程

随着同城物流需求的爆发式增长&#xff0c;货拉拉、快狗打车等同城货运平台成为连接货主与司机的核心载体&#xff0c;其“即时叫车、按需配送、透明定价”的模式&#xff0c;已成为同城货运的主流形态。对于 Java 后端开发者而言&#xff0c;从零开发一套货拉拉模式的同城货运…

2026/7/2 23:48:01 阅读更多 →
STM32 QSPI转SPI驱动代码,QSPI作为标准单线SPI使用,解决了某些单片机只有QS...

STM32 QSPI转SPI驱动代码,QSPI作为标准单线SPI使用,解决了某些单片机只有QS...

STM32 QSPI转SPI驱动代码&#xff0c;QSPI作为标准单线SPI使用&#xff0c;解决了某些单片机只有QSPI而没有标准SPI的问题 仅包含驱动代码&#xff0c;不包括硬件早些年折腾过STM32的小伙伴可能都遇到过这样的尴尬&#xff1a;新项目要用SPI外设&#xff0c;但手头的单片机偏偏…

2026/5/17 12:58:24 阅读更多 →

最新新闻

3分钟免费解锁MobaXterm专业版:开源许可证生成器终极指南

3分钟免费解锁MobaXterm专业版:开源许可证生成器终极指南

3分钟免费解锁MobaXterm专业版&#xff1a;开源许可证生成器终极指南 【免费下载链接】MobaXterm-keygen A keygen for MobaXterm 项目地址: https://gitcode.com/gh_mirrors/moba/MobaXterm-keygen 还在为MobaXterm专业版的高昂费用而犹豫吗&#xff1f;想要体验完整的…

2026/7/4 14:36:09 阅读更多 →
Hugging Face Hub大文件上传实战指南

Hugging Face Hub大文件上传实战指南

1. 大文件上传需求背景在机器学习领域&#xff0c;数据集和模型文件往往体积庞大。以常见的计算机视觉数据集为例&#xff0c;一个中等规模的图像数据集可能达到几十GB甚至上百GB。传统的文件托管服务要么有严格的容量限制&#xff0c;要么缺乏版本控制功能&#xff0c;给团队协…

2026/7/4 14:34:07 阅读更多 →
如何用C开发的开源CAD软件LitCAD,15分钟开启你的专业绘图之旅?

如何用C开发的开源CAD软件LitCAD,15分钟开启你的专业绘图之旅?

如何用C#开发的开源CAD软件LitCAD&#xff0c;15分钟开启你的专业绘图之旅&#xff1f; 【免费下载链接】LitCAD A very simple CAD developed by C#. 项目地址: https://gitcode.com/gh_mirrors/li/LitCAD 你是否曾因专业CAD软件的复杂界面和高昂费用而望而却步&#x…

2026/7/4 14:34:07 阅读更多 →
AutoRaise:彻底改变macOS窗口管理的鼠标悬停自动聚焦神器

AutoRaise:彻底改变macOS窗口管理的鼠标悬停自动聚焦神器

AutoRaise&#xff1a;彻底改变macOS窗口管理的鼠标悬停自动聚焦神器 【免费下载链接】AutoRaise AutoRaise (and focus) a window when hovering over it with the mouse 项目地址: https://gitcode.com/gh_mirrors/au/AutoRaise 你是否厌倦了在多个窗口间频繁点击切换…

2026/7/4 14:32:06 阅读更多 →
Lemos零代码构建智能知识图谱

Lemos零代码构建智能知识图谱

Lemos智能图谱知识库与免费且可本地部署的知识库&#xff08;如部分开源Wiki、笔记软件&#xff09;的核心区别在于其底层架构从“静态文档库”升级为“AI驱动的动态知识网络”&#xff0c;这带来了在知识组织、处理、应用及协作层面的系统性优势。 对比维度免费/本地部署的传…

2026/7/4 14:32:06 阅读更多 →
LV30条码扫描器与PIC18F86J11微控制器集成方案

LV30条码扫描器与PIC18F86J11微控制器集成方案

1. LV30条码扫描器与PIC18F86J11微控制器的技术背景 LV30是一款工业级线性影像式条码扫描引擎&#xff0c;采用先进的CMOS图像传感器技术&#xff0c;能够以每秒1000次扫描的频率捕获条码图像。与传统的激光扫描器相比&#xff0c;它的核心优势在于能够处理各种特殊介质上的条码…

2026/7/4 14:30:05 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布&#xff0c;这是一个关键的安全修复版本&#xff0c;修复了多个方面的问题&#xff0c;还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出&#xff0c;mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南&#xff1a;使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL&#xff08;Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器&#xff0c;与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻