大小()vs ls -la vs du -h哪一个是正确的大小?

我正在编译一个定制的内核,我想testing图像文件的大小。 这是结果:

ls -la | grep vmlinux -rwxr-xr-x 1 root root 8167158 May 21 12:14 vmlinux du -h vmlinux 3.8M vmlinux size vmlinux text data bss dec hex filename 2221248 676148 544768 3442164 3485f4 vmlinux 

由于它们都显示不同的尺寸,哪一个最接近实际的图像尺寸? 他们为什么不同?

Solutions Collecting From Web of "大小()vs ls -la vs du -h哪一个是正确的大小?"

他们都是正确的,他们只是表现出不同的大小。

  • ls显示文件的大小(当你打开并阅读它时,你将得到多少字节)
  • du显示实际的磁盘使用情况,由于漏洞可能小于文件大小
  • size显示与文件大小没有直接关系的对象/可执行文件的运行时映像的大小(bss不管文件大小如何都不使用字节,文件可能包含不属于运行时的调试信息图像等)

如果你想知道一个可执行文件将会占用多少内存/ ROM,动态内存分配将被排除在外, size会给你所需要的信息。