在使用Linux ls命令查看文件大小时,发现文件很大,足有100个G,而使用du命令查看则不超过10个G。linux
[root@shanghai devicemapper]# ls -l 总用量 8692788 -rwxrwxrwx. 1 root root 107374182400 5月 3 19:37 data -rwxrwxrwx. 1 root root 2147483648 5月 3 10:53 metadata
数数字麻烦,下面这个看得更清楚一些:app
[root@shanghai devicemapper]# ls -lh 总用量 8.3G -rwxrwxrwx. 1 root root 100G 5月 3 19:42 data -rwxrwxrwx. 1 root root 2.0G 5月 3 10:53 metadata
du命令显示文件占用的空间大小:spa
[root@shanghai devicemapper]# du -h * 8.3G data 15M metadata
能够发现,实际文件大小比占用的空间大小还大,那又怎么放得下?
原来这个是由于稀疏文件的缘故,稀疏文件中的“洞”不占存储空间。.net
形成这两者不一样的缘由主要有两点:code
至于什么是稀疏文件,下面这篇文章解释的很是详细:
为何用ls和du显示出来的文件大小有差异? - loryliu的专栏 - CSDN博客 https://blog.csdn.net/loryliu/article/details/25337409blog
转自ci
linux ls列出的文件大小比du还大? - hongweigg的专栏 - CSDN博客 https://blog.csdn.net/hongweigg/article/details/80191049博客