它们都是正确的,只是显示不同的大小。
ls
显示文件的大小(打开并阅读文件时,这就是您将获得的字节数)du
显示实际的磁盘使用情况,由于出现孔洞,该磁盘使用情况可能小于文件大小size
显示对象/可执行文件的运行时映像的大小,该大小与文件的大小没有直接关系(bss不管文件多大都不会使用字节,文件可能包含调试信息,而该信息不是运行时映像的一部分等)
如果您想知道可执行文件将占用多少RAM / ROM(不包括动态内存分配),
size则会为您提供所需的信息。

它们都是正确的,只是显示不同的大小。
ls显示文件的大小(打开并阅读文件时,这就是您将获得的字节数)
du显示实际的磁盘使用情况,由于出现孔洞,该磁盘使用情况可能小于文件大小
size显示对象/可执行文件的运行时映像的大小,该大小与文件的大小没有直接关系(bss不管文件多大都不会使用字节,文件可能包含调试信息,而该信息不是运行时映像的一部分等)
如果您想知道可执行文件将占用多少RAM / ROM(不包括动态内存分配),
size则会为您提供所需的信息。