Every operating system has a method of storing data in files
and directories so that it can keep track of additions,
modifications, and other changes. In Red Hat Enterprise Linux, every file is
stored in a directory. Directories can also contain
directories: these subdirectories may
also contain files and other subdirectories.
You might think of the file system as a tree and
directories as branches. There would be no tree without a root,
and the same is true for the Red Hat Enterprise Linux file system. No matter how
far away the directories branch, everything is connected to the
root directory, which is represented as a singe forward slash
(/).
3.2.1. Paths
To continue the tree analogy from Section 3.2 A Larger Picture of the File System, imagine navigating the file
system as climbing around in the branches of the tree. The
branches you would climb and traverse in order to get from one
part of the tree to another would be the
path from one location to another.
There are two kinds of paths, depending on how you describe
them. A relative path describes the
route starting from your current location in the tree. An
absolute path describes the route to
the new location starting from the tree trunk (the root
directory).
Graphic file browsers like
Nautilus use an absolute path to
display your location in the file system. At the top of a
Nautilus browser window is a
location bar. This bar indicates your current location
starting with a forward slash (/) — this is an
absolute path. You can navigate the file system by entering
the absolute path here. Press [Enter] and
Nautilus moves immediately to the
new location without navigating through the intervening
directories one at a time.
Navigating via the shell prompt utilizes either relative or
absolute paths. In some instances, relative paths are shorter
to type than absolute paths. In others, the unambiguous
absolute path is easier to remember.
There are two special characters used with relative paths.
These characters are "." and
"..". A single period, ".",
is shorthand for "here". It references your current
working directory. Two periods, "..",
indicates the directory one level up from your current working
directory. If your current working directory is your home
directory, /home/user/,
".." indicates the next directory up,
/home/.
Consider moving from the /usr/share/doc/
directory to the /tmp/ directory. The
relative path between the two requires a great deal of typing,
and requires knowledge of the absolute path to your current
working directory. The relative path would look like this:
../../../tmp/. The absolute path is
much shorter: /tmp/. The relative path
requires you to move up three directories to the
/ directory before moving to the
/tmp/ directory. The absolute path,
which always starts at the / directory, is much simpler.
However, the relative path between two closely-related
directories may be simpler than the absolute path. Consider
moving from /var/www/html/pics/vacation/ to
/var/www/html/pics/birthday/. The relative path is:
../birthday/. The absolute path is:
/var/www/html/pics/birthday/. Clearly, the relative path is
shorter in this case.
There is no right or wrong choice: both relative and absolute
paths point to the same branch of the tree. Choosing between
the two is a matter of preference and convenience. Remember,
the Nautilus location bar does not
recognize the ".." symbol — you must
use an absolute path.