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"?