事情是这样的,昨天开发让我给他倒个日志,由于历史原因吧,没有日志系统,直接上服务器看了下他要的日志大小
[root@xxxxx apps]# du -hs smartorder.log 9.0G smartorder.log
看了下,不小,我问开发,要整个日志吗,还是可以按日期给他切一下,他说要整个,我想着日志文件,通常压缩完也没多少,就压缩了一下,压缩完确实也不是太大
[root@xxxxx apps]# du -hs smartorder.log.tar.gz 744M smartorder.log.tar.gz
没多想,我就给他down下来发过去了
晚上回家,哥们找到我了

我说不可能啊,怎么可能100G,吓到我了,他还给我发了个截图

确实是100G,没办法,开电脑上服务器查看,通过ls指定–block-size查看大小
[root@xxxxx apps]# ls -l --block-size=G smartorder.log -rw-r--r-- 1 root root 103G Oct 21 09:00 smartorder.log
这。。。。。
后来想起来,du查找的时候是按照block大小计算的,计算的是实际占用磁盘空间的大小,但即便这样,按道理,和ls命令查出来的大小不会差太多,但是凡事有例外
linux中有一种文件叫做sparse file,它可以延迟分配磁盘空间,类似于我们用的虚拟机,在创建虚拟机的时候,可以分配20G的磁盘空间,但是你创建完后,去查看宿主机磁盘占用,确实际没有占用那么多
Sparse File专业名称叫稀疏文件,这是Unix类和NTFS等文件系统的一个特性
开始时,一个sparse file不包含数据,也没有分配到用来存储用户数据的磁盘空间。当数据被写入sparse file时,NTFS逐渐为其分配磁盘空间。
Sparse File以64KB为单位增量增长,所以磁盘上sparse file的大小总是64KB的倍数
Sparse File就是在文件中留有很多空余空间,留备将来插入数据使用。如果这些空余空间被ASCII码的NULL字符占据,并且这些空间相当大,那么,这个文件就被称为稀疏文件,而且,并不分配相应的磁盘块。
很显然,我上面遇到的就是一个Sparse File,那么这么大的一个sparse file,怎么处理?
其实cp命令有一个针对sparse文件拷贝优化的参数–spare=WHEN,WHEN的值为auto、always、never,默认为auto,如果设置为never则会自动填数据
同样支持sparse的命令还有tar、cpio、rsync,下面通过tar试下
[root@bibang-server apps]# tar cSf smartorder.log.tar smartorder.log [root@bibang-server apps]# ls -l --block-size=G smartorder.log.tar -rw-r--r-- 1 root root 10G Oct 21 09:57 smartorder.log.tar
如何查找系统上的sparse file,或确认文件是否是sparse file?
[root@xxxxx apps]# find ./smartorder.log -type f -printf "%S\t%p\n" 0.0886597 ./smartorder.log
如上,通过find命令,find命令通过%S输出的结果中,最左边一列显示的值是(BLOCK-SIZE*st_blocks/st_size),sparse file的大小通常是小于1.0的
如果要查找文件系统上所有稀疏文件,可以通过以下find命令
find / -type f -printf "%S\t%p\n" | gawk '$1
ok,今天的内容就到这里了,欢迎转发、在看、关注!
以上是Linux下du和ls计算的文件大小竟然差10倍?的详细内容。更多信息请关注PHP中文网其他相关文章!

本指南详细介绍了如何使用SystemD配置自动服务在Linux中重新启动,从而增强了系统的可靠性并最大程度地减少停机时间。 系统管理员通常依靠此功能来确保关键服务,例如Web服务器(APA

作为Linux用户,我们经常依赖常用的命令ls、grep、awk、sed和find来完成工作。但Linux拥有大量鲜为人知的命令,可以节省时间、自动化任务并简化工作流程。 本文将探讨一些被低估但却功能强大的Linux命令,它们值得更多关注。 rename – 高效批量重命名文件 当您需要一次重命名多个文件时,rename命令是救星。无需使用包含mv的循环,rename允许您轻松应用复杂的重命名模式。 将所有.txt文件更改为.log。 rename 's/\.txt$/\.log/' *

Linux 系统提供各种系统服务(例如进程管理、登录、syslog、cron 等)和网络服务(例如远程登录、电子邮件、打印机、Web 托管、数据存储、文件传输、域名解析(使用 DNS)、动态 IP 地址分配(使用 DHCP)等等)。 从技术上讲,服务是在后台持续运行的进程或进程组(通常称为 守护进程),等待传入请求(尤其来自客户端)。 Linux 支持不同的方式来管理(启动、停止、重启、启用系统启动时的自动启动等)服务,通常通过进程或服务管理器。几乎所有现代 Linux 发行版现在都使用相同的进

使用Crossover 25运行Windows软件和游戏 由于CodeWeavers的Crossover 25,在Linux上运行Windows应用程序和游戏现在比以往任何时候都容易。 这个商业软件解决方案让Linux用户运行各种各样的风
![PCLOUD-最安全的云存储[优惠50%]](https://img.php.cn/upload/article/001/242/473/174580357418126.jpg?x-oss-process=image/resize,p_40)
使用PCLOUD保护数据:Linux安装的综合指南 领先的安全云存储服务PCloud提供了一个可靠的平台来管理您的文件和数据。本指南详细介绍了Linux系统上的安装过程。 关于

MangoHud:实时监控Linux游戏性能的利器 MangoHud是一款功能强大且轻量级的工具,专为游戏玩家、开发者以及任何希望实时监控系统性能的用户而设计。它作为Vulkan和OpenGL应用程序的叠加层,显示FPS、CPU和GPU使用率、温度等重要信息。本文将探讨MangoHud的功能、工作原理以及使用方法,并提供在Linux系统上安装和配置MangoHud的分步说明。 MangoHud是什么? MangoHud是一个开源项目,可在GitHub上获取,旨在提供一种简单且可自定义的方式来监

管理存档文件是Linux中的常见任务。本文是两部分系列中的第一篇,探讨了五种强大的命令行档案工具,详细介绍了他们的功能和示例的用法。 1。焦油命令:多功能存档实用程序 t

本指南探讨了用于比较Linux中文本文件的各种方法,Linux是系统管理员和开发人员的关键任务。 我们将介绍命令行工具和视觉差异工具,突出显示其优势和适当的用例。 假设


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。