[CentOS] question about directory size in linux..

Gordon Messmer

gordon.messmer at gmail.com
Thu Feb 23 02:05:12 UTC 2017


On 02/22/2017 12:27 PM, Anthony K wrote:
> On 23/02/17 06:04, John R Pierce wrote:
>> on many modern file systems, larger directories are stored as some 
>> sort of B-Tree or hash tree, so there's quite a lot of indexing data 
>> in there along with the actual directory entries 
> So I gather this depends on the file system.

The structure will vary slightly, but you can reasonably expect that a 
directory will act like a file, expanding in size to accommodate its 
directory entries.

> On my ext4 file system, I have a directory that has >2TB and the 
> directory entry itself only shows:
>
> $ ls -ld Stuff
> drwxrwxr-x 146 akk akk   36864 Feb 21 21:18 Stuff/

It might help to understand what a directory entry is.  See "man 3 readdir".

A directory entry is generally what you see if you run "ls -i" in a 
directory.  It is an inode number, and a name associated with that inode 
number.  The size of the directory typically represents the largest that 
individual directory has had to be in order to contain the list of 
inodes and names immediately within it.  The directory's size is not 
influenced by the size of files within it, nor by the contents of 
sub-directories.

Does that clarify why there's no relationship between the size of the 
"Stuff" directory reported by "ls -ld", and the size of its contents 
reported by "du"?



More information about the CentOS mailing list