On Linux, when you a create folder, it automatically creates two hard links to the corresponding inode.
One which is the folder you asked to create, the other being the .
special folder this folder.
Example:
$ mkdir folder
$ ls -li
total 0
124596048 drwxr-xr-x 2 fantattitude staff 68 18 oct 16:52 folder
$ ls -lai folder
total 0
124596048 drwxr-xr-x 2 fantattitude staff 68 18 oct 16:52 .
124593716 drwxr-xr-x 3 fantattitude staff 102 18 oct 16:52 ..
As you can see, both folder
and .
's inside folder
have the same inode number (shown with -i
option).
Is there anyway to delete this special .
hardlink?
It's only for experimentation and curiosity.
Also I guess the answer could apply to ..
special file as well.
I tried to look into rm
man but couldn't find any way to do it. When I try to remove .
all I get is:
rm: "." and ".." may not be removed
I'm really curious about the whole way these things work so don't refrain from being very verbose on the subject.
EDIT: Maybe I wasn't clear with my post, but I want to understand the underlying mechanism which is responsible for .
files and the reasons why they can't be deleted.
I know the POSIX standard disallows a folder with less than 2 hardlinks, but don't really get why. I want to know if it could be possible to do it anyway.