为什么 ls -lh 和 ls -ldh 给出的文件大小不同?

为什么 ls -lh 和 ls -ldh 给出的文件大小不同?

为什么屏幕截图中显示的文件大小会有差异,即 ls -lh 下的总文件大小为 44k,而文件夹的大小只有 4k?我读错了吗?在此处输入图片描述

答案1

是的,您读错了。4.0K 是文件夹条目占用的磁盘大小/tmp。它通常始终为 4k(尽管根据某些因素可能会增加)。ls也不考虑子文件夹内容占用的空间。

您真正想要查看的是du用于了解总磁盘空间的命令。

gbeech@ny-man01:~$ ls -lh
total 3.6G

对比

gbeech@ny-man01:~$ du -sh
36G     .

答案2

给出ls -lh内容的大小/tmp。 给出包含 内容信息的ls -ldh /tmp目录文件的大小。/tmp/tmp

在 Linux/Unix 中,目录只是一个包含信息的文件,开关d表示列出目录条目,而不是其内容。

编辑

如果您想知道一组文件占用了多少磁盘空间(大约),那么它du -h会告诉您。如果您想知道文件大小的总和,那么它du -b会更准确。

例如

du -h
56K     ./vmware-root
12K     ./.font-unix
8.0K    ./.ICE-unix
164K    .

du -b
28474   ./vmware-root
4096    ./.font-unix
4096    ./.ICE-unix
68798   .

的输出du -b对应于

find . -ls | awk '{total += $7} END {print total}'
68798

这是文件大小的总和。

相关内容