ls -h报告更多diskusage然后du -h,怎么样?

时间:2016-12-16 09:12:11

标签: linux redhat

如果我做一个ls -h,我总共获得126 Gb,而du -h报告其中一半:63 Gb。 它是一个包含24个文件的目录。如果我计算所有单独的文件大小,我总共有126 Gb。没有符号链接。

造成差异的原因是什么?

ls -alh
total 126G
drwxrwxrwx 3 root root 4.0K Dec 11 12:48 .
drwxrwxrwx 3 root root 4.0K May 19  2008 ..
-rw-rw-rw- 1 root root    0 Dec 11 10:28 auto-opschoning.errtmp
-rw-rw-rw- 1 root root  11M Dec 11 12:33 auto-opschoning.logtmp
drwxrwxrwx 2 root root 4.0K Feb 19  2016 backup
-rw-rw-rw- 2 root root 9.7M Dec 11 12:48 batchkop
-rw-rw-rw- 2 root root 9.7M Dec 11 12:48 batchkop.his
-rw-rw-rw- 2 root root 9.2G Dec 11 12:48 dispudet
-rw-rw-rw- 2 root root 9.2G Dec 11 12:48 dispudet.his
-rw-rw-rw- 2 root root 1.2G Dec 11 12:48 dispukop
-rw-rw-rw- 2 root root 1.2G Dec 11 12:48 dispukop.his
-rw-rw-rw- 2 root root 765M Dec 11 12:48 loktrail
-rw-rw-rw- 2 root root 765M Dec 11 12:48 loktrail.his
-rw-rw-rw- 2 root root  19G Dec 11 12:48 orddet
-rw-rw-rw- 2 root root  19G Dec 11 12:48 orddet.his
-rw-rw-rw- 2 root root 4.1G Dec 11 12:48 orddetkl
-rw-rw-rw- 2 root root 4.1G Dec 11 12:48 orddetkl.his
-rw-rw-rw- 2 root root 977M Dec 11 12:48 ordkop
-rw-rw-rw- 2 root root 977M Dec 11 12:48 ordkop.his
-rw-rw-rw- 2 root root  12G Dec 11 12:48 trail
-rw-rw-rw- 2 root root  12G Dec 11 12:48 trail.his
-rw-rw-rw- 2 root root 5.7G Dec 11 12:48 verzdud
-rw-rw-rw- 2 root root 7.4G Dec 11 12:48 verzdudd
-rw-rw-rw- 2 root root 7.4G Dec 11 12:48 verzdudd.his
-rw-rw-rw- 2 root root 5.7G Dec 11 12:48 verzdud.his
-rw-rw-rw- 2 root root 251M Dec 11 12:48 verzduk
-rw-rw-rw- 2 root root 251M Dec 11 12:48 verzduk.his
-rw-rw-rw- 2 root root 3.5G Dec 11 12:48 voorsnap
-rw-rw-rw- 2 root root 3.5G Dec 11 12:48 voorsnap.his

du -h
4.0K    ./backup
63G     .

1 个答案:

答案 0 :(得分:1)

我认为这里的区别与你试图获得空间的文件有关。

某些文件称为稀疏文件。

稀疏文件是其空间未完全物理分配的文件(它们实际上是虚拟分配的)

它们被大量用作虚拟机存储文件,而某些数据结构则需要它们。

您可以使用dd创建稀疏文件并使用它进行测试

检查这个例子我刚刚做了

h@localhost:~$ mkdir test
h@localhost:~$ cd test/
h@localhost:~/test$ dd if=/dev/zero of=file.img bs=1 count=0 seek=512M
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000214033 s, 0.0 kB/s
h@localhost:~/test$ ls -h
file.img
h@localhost:~/test$ ls -alh
total 8.0K
drwxr-xr-x 2 h h 4.0K Dec 16 14:04 .
drwxr-xr-x 3 h h 4.0K Dec 16 14:02 ..
-rw-r--r-- 1 h h 512M Dec 16 14:04 file.img
h@localhost:~/test$ du -c
4       .
4       total
h@localhost:~/test$

并且在评论中发布的链接表示ls -h和du -c之间的差异是du -c将获得实际使用的空间而不是虚拟分配的空间,而ls -h将给出虚拟分配的空间< / p>