Documents folder has 7 hard links

If the directory Documents has seven hard links, this means that:

  • One hard link is from the name Documents in its parent directory.

  • One hard link is from the entry . in Documents itself.

  • Five hard links are from the entries .. in five subdirectories.


Column #2 in the output of ls -l shows the number of hard links(?)

Folders alias directories cannot be hard-linked (but they can be linked to with symbolic links). The number in the same place as number of hard links for files means something else, related to how much space the folder needs in the file system's 'table', because the number grows with the number of sub-folders.

Hard links means that the data at a certain inode are pointed to by more than one file name (so the hard-linked names share the same inode number).

There is a detailed explanation by Sergiy Kolodyazhnyy at this link and this comment by him,

Folders alias directories cannot be hard-linked by the users, since it would create issues with filesystem. Filesystem itself does allow hard-links in a very controlled manner, which is .. and . special entries. Size, however, is shown in most cases to be 4096 bytes (see this related post), but if I am not mistaken, directory with large number of entries can go over that number. This may be worth adding to the answer

Column #5 in the output of ls -l shows the file size(?)

But what about folders -- most folders occupy 4 kiB, but when there are many files (and sub-folders) the names cannot get squeezed into 4kiB and more space will be allocated, 8 kiB, 12 kiB etc. My 'worst' case is a Firefox cache folder with the 'size' 4012 kiB. It contains 58971 files, and these files occupy 2.2 GiB. This reminds me that it is getting time the clear the Firefox cache ;-)


You can check that your Documents folder's inode number is unique, no other file or folder shares it. You can check other folders too.

Try the following commands (maybe modified, if you have another language (than English).

  • Identify the inode number (you will get another number than I)

    $ls -lid ~/Documents/
    3017032 drwxr-xr-x 2 sudodus sudodus 4096 feb 28  2016 /home/sudodus/Documents/
    
  • Search for files/folders with that inode number (and try to avoid too many warning/error outputs)

    $ sudo find / -path /proc -prune -o -ls | grep ' 3017032 '
    [sudo] password for sudodus: 
      3017032  4 drwxr-xr-x 2 sudodus  sudodus  4096 feb 28  2016 /home/sudodus/Documents
    find: ‘/run/user/1000/gvfs’: Permission denied
    

    or

    $ sudo find / -inum 3017032  -ls
      3017032  4 drwxr-xr-x  2 sudodus  sudodus  4096 feb 28 2016 /home/sudodus/Documents
    find: '/proc/1643/task/1643/net': Invalid argument
    find: '/proc/1643/net': Invalid argument
    find: '/proc/1741/task/1741/net': Invalid argument
    find: '/proc/1741/net': Invalid argument
    find: '/proc/4021': No such file or directory
    find: '/proc/4038': No such file or directory
    find: '/proc/4039': No such file or directory
    find: '/run/user/1000/gvfs': Permission denied
    

The following example shows the corresponding case with three hard-linked file names.

  • Identify the inode number

    $ ls -il owned\ by\ root
    56492055 -rw-r--r-- 3 root root 1048576 jan 16 23:41 'owned by root'
    
  • Search within the file system (in this case my data partition)

    $ sudo find /media/multimed-2/ -inum 56492055
    [sudo] password for sudodus: 
    /media/multimed-2/test/test0/owned by root hard-linked
    /media/multimed-2/test/test0/owned by root
    /media/multimed-2/test/test0/sub/owned by root
    

Tags:

Filesystem