Size() vs ls -la vs du -h which one is correct size?

后端 未结 2 531
轻奢々
轻奢々 2020-12-03 22:27

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         


        
2条回答
  •  醉梦人生
    2020-12-03 23:25

    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.

提交回复
热议问题