为什么屏幕截图中显示的文件大小会有差异,即 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
这是文件大小的总和。