'size'vs'ls -l'来获取可执行文件的大小

Div*_*ker 1 linux bash binutils

对于同一个文件,我认为输出ls -l xxx总是大于或等于输出size xxx.

但是当我键入ls -l /bin/ls输出时是:

 -rwxr-xr-x 1 root root 104508  1? 14  2015 /bin/ls

对于size /bin/ls,输出是:

   text    data     bss     dec     hex filename
 101298     976    3104  105378   19ba2 /bin/ls

为什么ls显示不到size104508 <105378

Chr*_*odd 5

ls -l告诉你文件的大小,而size命令告诉你文件中存储的可执行文件的大小 - 加载时需要多少内存.某些段(例如.bss)是零初始化的,而不是要求文件中的数据初始化它们,因此文件可能因此小于可执行映像.