Can someone explain the detail of the 'inode count' when using command 'll'
Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Can someone explain the detail of the 'inode count' when using command 'll'
i can understand why hard links can change that number,but still confused with the number of a directory.
in fact, create a sub dir will change the number of his parent, regular files will not.
hard link:
file1
|
|——> inode -> data block
|
file2
the 2 files above have a common inode with the count value 2
directoy:
assume ./a/b, b is the only sub dir of a
inode(a) ——> data block(a) ——> contains {inode:[10, 11, 12], filename:[., .., b]} // this editor will ignore the extra blank, so here i use json instead
above show the struct of storage of a dir
if a's inode is 9, b's is 12, they are not the same
means only 2 filenames are linked to inode 9(a and .)
i can understand why hard links can change that number,but still confused with the number of a directory.
Do you mean the "Total <number>" part of the command output? if yes, then check this from the GNU page on the ls command :
Quote:
For each directory that is listed, preface the files with a line ‘total blocks’, where blocks is the total disk allocation for all files in that directory. The block size currently defaults to 1024 bytes, but this can be overridden (see Block size). The blocks computed counts each hard link separately; this is arguably a deficiency.
inode(a) ——> data block(a) ——> contains {inode:[10, 11, 12], filename:[., .., b]} // this editor will ignore the extra blank, so here i use json instead
above show the struct of storage of a dir
if a's inode is 9, b's is 12, they are not the same
means only 2 filenames are linked to inode 9(a and .)
Directory b contains a ".." link, which is to the inode of directory a. The link count for a directory is always ( 2 + number_of_immediate_subdirs ) due to these ".." links.
Directory b contains a ".." link, which is to the inode of directory a. The link count for a directory is always ( 2 + number_of_immediate_subdirs ) due to these ".." links.
The formula (2 + number_of_subdirs) is correct for the root directory too. It's just that in the root directory, one of those "2" links is different. In a non-root directory, there is one link from the parent directory plus the directory's own "." link. In the root directory, there is no parent directory, but both "." and ".." point to the root directory, so there are still 2 links.
BTW, when you want to post something with spacing preserved, just wrap it in [CODE] ... [/CODE] tags. The "#" icon in the toolbar will do that for you.
Last edited by rknichols; 06-07-2013 at 09:33 AM.
Reason: add BTW
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.