Linux下CSV文件实际占用空间小于标称大小的原因排查求助
Linux下CSV文件实际占用空间小于标称大小的原因排查求助
大家好,我最近碰到个挺费解的问题,想请教下各位大佬:
我用scp把Windows上一个存满CSV文件的大文件夹拷贝到了CentOS 7.9.2009系统上,文件都存在NFS挂载的分区里。拷贝完成后我用du -sh .检查磁盘占用,结果发现实际占用比预期小很多,仔细看了下,好多CSV文件的实际占用空间都远小于标称大小。
我先锁定了单个CSV文件来排查,这些都是普通的文本CSV,我觉得里面应该不会有NUL字符。而且我已经用sha256sum对比过Windows和Linux上的文件,哈希值完全一致,说明拷贝过程中文件没有损坏。
下面是这个单个CSV文件的相关命令输出:
$ du * 1897800 big_csv_file.txt $ du --apparent-size * 2792499 big_csv_file.txt $ find . -type f -printf '%S:%p\n' 0.679606:./big_csv_file.txt $ du --apparent-size -b * 2859518674 big_csv_file.txt
最后这个数值和ls -l显示的文件大小是一致的。本来我还想确认文件里有没有NUL字符(担心是稀疏文件的问题),不过现在更困惑的是:既然文件内容完全没损坏,为啥实际占用的磁盘空间会比标称大小小这么多?是NFS挂载的分区有什么特殊配置吗?还是有其他我没考虑到的因素?
麻烦各位帮忙分析下可能的原因,谢谢啦!
备注:内容来源于stack exchange,提问作者Eddie
相关产品推荐
相关产品推荐

