linux ls列出的文件大小比du还大?

在使用Linux ls命令查看文件大小时,发现文件很大,足有100个G,而使用du命令查看则不超过10个G。

[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

数数字麻烦,下面这个看得更清楚一些:

[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命令显示文件占用的空间大小:

[root@shanghai devicemapper]# du -h *
8.3G    data
15M    metadata

可以发现,实际文件大小比占用的空间大小还大,那又怎么放得下?

原来这个是因为稀疏文件的缘故,稀疏文件中的“洞”不占存储空间。

至于什么是稀疏文件,下面这篇文章解释的非常详细:

标题:为什么用ls和du显示出来的文件大小有差别?

地址:https://blog.csdn.net/loryliu/article/details/25337409

posted @ 2018-05-04 10:15  hongweigg  阅读(35)  评论(0编辑  收藏  举报