Learn Linux Quickly
上QQ阅读APP看书,第一时间看更新

Parent and current directories

There are two special directories under every directory in the filesystem:

  1. Current working directory represented by one dot (.)
  2. Parent directory represented by two dots (..)

Figure 10: Visualizing Parent and Current Directories

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.