Search code examples
linuxdudisk-access

Disk usage - du showing different results


I am confused with du command because it gives different result for files.

[root@gerrh6-05 sathish]# du -s saravana/admin/sqlnet.ora
4       saravana/admin/sqlnet.ora
[root@gerrh6-05 sathish]# du -h saravana/admin/sqlnet.ora
4.0K    saravana/admin/sqlnet.ora
[root@gerrh6-05 sathish]# du -b saravana/admin/sqlnet.ora
65      saravana/admin/sqlnet.ora
[root@gerrh6-05 sathish]# du -bh saravana/admin/sqlnet.ora
65      saravana/admin/sqlnet.ora


[root@gerrh6-05 sathish]# ll -h saravana/admin/sqlnet.ora
-rw-r----- 1 root root 65 May 18 03:47 saravana/admin/sqlnet.ora

Disk usage summary return invalid result(-s gives 4 and -b gives 65), where bytes(-b) return same as ll result.

[root@gerrh6-05 sathish]# du -sh saravana/admin
114M    saravana/admin

[root@gerrh6-05 sathish]# du -bh saravana/admin
12K     saravana/admin/1/xdb_wallet
7.4K    saravana/admin/1/pfile
7.2M    saravana/admin/1/test/result/data
7.6M    saravana/admin/1/test/result
7.0M    saravana/admin/1/test/data
28M     saravana/admin/1/test
7.2M    saravana/admin/1/adump
4.0K    saravana/admin/1/logbook/controlfile_trace
8.0K    saravana/admin/1/logbook
4.2K    saravana/admin/1/dpdump
35M     saravana/admin/1
35M     saravana/admin

From above which is correct size of /admin dir 35M or 114M.

Which one I should take?

Note: I am working on a linux machine where I don't have UI.Purpose why I ma looking for this is, I writing a script to taking backup. I should split folders and files based on size limit 4GB. Which one I should take to count.Because the different is large!!


Solution

  • From man du:

    --apparent-size: print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be larger due to holes in ('sparse') files, internal fragmentation, indirect blocks, and the like

    -b, --bytes: equivalent to --apparent-size --block-size=1

    So, -b tells you how much data is stored; without it, you get how much disk space is used. Both are "correct size", for different definition of "size".