There are two special directories under every directory in the filesystem:
- Current working directory represented by one dot (.)
- Parent directory represented by two dots (..)
It's easy to understand both directories by going through a few examples. To demonstrate, let's first change to /home/elliot so that it becomes our current working directory:
elliot@ubuntu-linux:~/Desktop$ cd /home/elliot
elliot@ubuntu-linux:~$ pwd
/home/elliot
Now run the cd . command:
elliot@ubuntu-linux:~$ cd .
elliot@ubuntu-linux:~$ pwd
/home/elliot
As you would expect, nothing happened! We are still at /home/elliot, and that is because one dot (.) represents the current working directory. It's like if you told someone, "Go where you are!"
Now run the cd .. command:
elliot@ubuntu-linux:~$ cd ..
elliot@ubuntu-linux:/home$ pwd
/home
We moved back one directory! In other words, we changed to the parent directory of /home/elliot, which is /home.
Let's run another cd ..:
elliot@ubuntu-linux:/home$ cd ..
elliot@ubuntu-linux:/$ pwd
/
Indeed we keep going back, and now we are at the root of our directory tree. Well, let's run cd .. one more time:
elliot@ubuntu-linux:/$ cd ..
elliot@ubuntu-linux:/$ pwd
/
Hmmm, we are at the same directory! Our path didn't change, and that's because we are at the root of our directory tree already, so we can't go any further back. As a result, the root directory (/) is the only directory where the parent directory = current directory, and you can visualize it by looking at figure 10.
You can also insert the directory separator cd ../.. to move back two directories at once:
elliot@ubuntu-linux:~$ pwd
/home/elliot
elliot@ubuntu-linux:~$ cd ../..
elliot@ubuntu-linux:/$ pwd
/
You can also run cd ../../.. to move back three directories and so on.