What is double dot(..) and single dot(.) in Linux?
LinuxFileUnixDirectoryLinux Problem Overview
The ls -ai
command shows that .
and ..
have their inodes the same as the current directory and parent directory, respectively.
What exactly are .
and ..
?
Are they real files or even hard links? But as I have known, it's not allowed to create a hard link to a directory.
Linux Solutions
Solution 1 - Linux
.
represents the directory you are in and ..
represents the parent directory.
From the dot definition:
> This is a short string (i.e., sequence of characters) that is added to > the end of the base name (i.e., the main part of the name) of a file > or directory in order to indicate the type of file or directory. > > On Unix-like operating systems every directory contains, as a minimum, > an object represented by a single dot and another represented by two > successive dots. The former refers to the directory itself and the > latter refers to its parent directory (i.e., the directory that > contains it). These items are automatically created in every > directory, as can be seen by using the ls command with its -a option > (which instructs it to show all of its contents, including hidden > items).
Solution 2 - Linux
They are special name-inode maps which do count as hard-links (they do increase the link-count) though they aren't really hard-links, since, as you said, directories can't have hard-links. Read more here: Hard links and Unix file system nodes (inodes)
Solution 3 - Linux
.
represents the current directory that you are using and
..
represents the parent directory.
Example:
Suppose you are in the directory /etc/mysql
and you wanted to move to the parent directory, i.e. /etc/
. Then use cd..
:
/etc/mysql> cd ..
And if you wanted to set the path of one file in the current directory bash file, use .
with file name like this: ./filename
Solution 4 - Linux
They are not hard links. You can more think of it like a shorthand for this directory (.) and parent of this directory (..).
Try to remove or rename .
or ..
. Then you understand why it is not a hard link.