The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Dummies Questions & Answers
Google UNIX.COM


UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !!

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 03-07-2004
Registered User
 

Join Date: Mar 2004
Location: New York
Posts: 8
Question ls- l and du

Hi everyone:
I was wondering if anyone can tell me why the size of a file listed using "du" and "ls -l" is different. Thanks in advance..
Reply With Quote
Forum Sponsor
  #2 (permalink)  
Old 03-07-2004
kduffin's Avatar
UN1X
 

Join Date: Nov 2003
Location: Virginia
Posts: 441
An 'ls -l' will show the size of the file in bytes. 'du' shows the size of the file in 512-byte units, rounded up to the next 512-byte unit.

Cheers,

Keith
Reply With Quote
  #3 (permalink)  
Old 04-19-2007
Registered User
 

Join Date: Apr 2007
Posts: 23
Can anyone think of a scenario in which size reported by ls -l is less than the size reported by du.

The other way round is possible, if the file has holes, ls -l will report a size more than du (since du calculates the actual disk usage)

But I cannot understand why du reports a size more than ls -l.

For e.g:

% ls -l file12MB.pdf
-rw-r--r-- 1 vqwe 11650342 Apr 19 16:34 file12MB.pdf
% du -k file12MB.pdf
11404 file12MB.pdf

du shows file size is 11404 Kb.
ls shows file size is 11650342 bytes = 11377.2 Kb

How is this possible ?

Is it that du counts the space occupied by Indirect blocks as well ???

awaiting your response
Reply With Quote
  #4 (permalink)  
Old 04-19-2007
Perderabo's Avatar
Unix Daemon
 

Join Date: Aug 2001
Location: Washington DC Area
Posts: 8,355
Quote:
Originally Posted by tantric
Can anyone think of a scenario in which size reported by ls -l is less than the size reported by du.

The other way round is possible, if the file has holes, ls -l will report a size more than du (since du calculates the actual disk usage)
That is pretty much the usual case. Take a McKusick style filesystem with 4k blocks and 1k fragments. I create a file with a single byte. ls says the length is 1 byte. du says the length is 2 blocks. Here is the definition of a stat structure. ls uses st_size while du uses st_blocks. (ls will report both numbers if you use "ls -ls".) The relationship between these two numbers depends on the filesystem. With most filesystems, yes, indirect blocks count. Some filesystems may have a way to preallocate data blocks to a file in advance of the need.

Btw, your second case is often called "sparse files".
Reply With Quote
Google UNIX.COM
Reply

Thread Tools
Display Modes




All times are GMT -7. The time now is 06:51 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008 The CEP Blog All Rights Reserved -Ad Management by RedTyger Visit The Global Fact Book

Content Relevant URLs by vBSEO 3.2.0