'size' vs 'ls -l' 获取可执行文件的大小
'size' vs 'ls -l' to get the size of an executable file
对于同一个文件,我认为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
显示的比 size
少? 104508 < 105378
ls -l
告诉您文件的大小,而 size
命令告诉您存储在文件中的可执行映像的大小——加载时需要多少内存。某些段(例如 .bss)是零初始化的,而不需要文件中的数据来初始化它们,因此文件很可能因此小于可执行映像。
对于同一个文件,我认为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
显示的比 size
少? 104508 < 105378
ls -l
告诉您文件的大小,而 size
命令告诉您存储在文件中的可执行映像的大小——加载时需要多少内存。某些段(例如 .bss)是零初始化的,而不需要文件中的数据来初始化它们,因此文件很可能因此小于可执行映像。