13.4. Changing Directories with cd
Changing directories is easy as long as you know where you are (your
current directory) and how that relates to where you want to go.
To change directories, use the cd command. Typing
this command by itself will always return you to your home directory;
moving to any other directory requires a
You can use absolute or
relative pathnames. Absolute paths start at the
top of the file system with / (referred to as root)
and then look down for the requested directory; relative paths look down
from your current directory, wherever that may be. The following
directory tree illustrates how cd operates.
If you are currently in directory3 and you want to
switch to directory1, you need to move up in the
Executing the command
while you are in directory3, will present you
with an error message explaining that there is no such directory. This
is because there is no directory1 below
To move up to directory1, type:
This is an example of an absolute path. It tells Linux to start at
the top of the directory tree (/) and change to
directory1. A path is absolute if the first
character is a /. Otherwise, it is a relative path.
Using absolute paths allows you to change to a directory from the
/ directory, which requires you to know and type
the complete path. Using relative paths allows you to change to a
directory relative to the directory you are currently in, which can be
convenient if you are changing to a subdirectory within your current
The command cd .. tells your system to go up to
the directory immediately above the one in which you are currently
working. To go up two directories, use the cd ../..
Use the following exercise to test what you have learned so far
regarding absolute and relative paths. From your home directory, type
the relative path:
After using the full command in the example, you should be in the
directory X11, which is where you will find
configuration files and directories related to the X Window System.
Take a look at your last cd command. You told
your system to:
Go up one level to your login directory's parent directory (probably
Then go up to that directory's parent (which is the root, or
Then go down to the etc directory
Finally, go to the X11 directory
Conversely, using an absolute path would get you to the
/etc/X11 directory more quickly. For example:
Absolute paths start from the root directory (/) and move down to
the directory you specify.
Always make sure you know which working directory you are in before you
state the relative path to the directory or file you want to get
to. You do not have to worry about your position in the file system,
though, when you state the absolute path to another directory or
file. If you are not sure, type pwd and your
current working directory will be displayed, which can be your guide for
moving up and down directories using relative pathnames.
|cd||returns you to your login directory|
|cd ~||also returns you to your login directory|
|cd /||takes you to the entire system's root directory|
|cd /root||takes you to
the home directory of the root, or superuser, account created at
installation; you must be the root user to access this directory
|cd /home||takes you to the home directory, where
user login directories are usually stored|
|cd ..||moves you up one directory|
~otheruser||takes you to otheruser's login
directory, if otheruser has granted you
|cd /dir1/subdirfoo||regardless of which directory you are in, this absolute path
would take you straight to subdirfoo, a
subdirectory of dir1|
relative path would take you up two directories, then to
dir3, then to the dir2
Table 13-1. cd Options
Now that you are starting to understand how to change directories, see
what happens when you change to root's login directory (the superuser
If you are not logged in as root, you are denied
permission to access that directory.
Denying access to the root and other users' accounts (or login
directories) is one way your Linux system prevents accidental or
malicious tampering. See Section 13.14 Ownership and Permissions.
To change to the root login and root directory, use the
The command su means
substitute users and it allows you to log in as another user
temporarily. When you type su by itself and press
[Enter], you become root (also called the superuser)
while still inside your login shell (your user's home directory). Typing
su - makes you become root with root's login shell;
it is as if you had logged in as root originally.
As soon as you give the root password, you will see the changes in
your command prompt to show your new, superuser status, the root account
designation at the front of the prompt and "#" at the end.
When you are done working as root, type exit at
the prompt, and you will return to your user account.