I was compiling a custom kernel, and I wanted to test the size of the image file. These are the results:
ls -la | grep vmlinux
-rwxr-xr-x 1 root root 8
Two definition need to be understood
1 runtime vs storetime (this is why size
differs)
2 file depth vs directory (this is why du
differs)
Look at the below example:
[root@localhost test]# ls -l
total 36
-rw-r--r-- 1 root root 712 May 12 19:50 a.c
-rw-r--r-- 1 root root 3561 May 12 19:42 a.h
-rwxr-xr-x 1 root root 71624 May 12 19:50 a.out
-rw-r--r-- 1 root root 1403 May 8 00:15 b.c
-rw-r--r-- 1 root root 1403 May 8 00:15 c.c
[root@localhost test]# du -abch --max-depth=1
1.4K ./b.c
1.4K ./c.c
3.5K ./a.h
712 ./a.c
70K ./a.out
81K .
81K total
[root@localhost test]# ls -l
total 36
-rw-r--r-- 1 root root 712 May 12 19:50 a.c
-rw-r--r-- 1 root root 3561 May 12 19:42 a.h
-rwxr-xr-x 1 root root 71624 May 12 19:50 a.out
-rw-r--r-- 1 root root 1403 May 8 00:15 b.c
-rw-r--r-- 1 root root 1403 May 8 00:15 c.c
[root@localhost test]# size a.out
text data bss dec hex filename
3655 640 16 4311 10d7 a.out
If using size
not on executable, OS will report an error.