A relative pathname gives directions that start in your current working directory and lead you up or down through a series of directories to a particular file or directory. By moving down from your current directory, you can access files and directories you own.
For example, suppose you are in the directory starship in the sample system and starship contains directories named draft, letters, and bin and a file named mbox. The relative pathname to any of these is simply its name, such as draft or mbox. ``Relative pathname of the draft directory'' traces the relative path from starship to draft.
Relative pathname of the draft directory
The draft directory belonging to starship contains the files outline and table. The relative pathname from starship to the file outline is draft/outline.
``Relative pathname from starship to outline'' traces this relative path. Notice that the slash in this pathname separates the directory named draft from the file named outline. Here, the slash is a delimiter showing that outline is subordinate to draft; that is, outline is a child of its parent, draft.
Relative pathname from starship to outline
So far, the discussion of relative pathnames has covered how to specify names of files and directories that belong to, or are children of, the current directory. You can move down the system hierarchy level by level until you reach your destination. You can also, however, ascend the levels in the system structure or ascend and subsequently descend into other files and directories.
By moving up from your current directory, you pass through layers of parent directories to the grandparent of all system directories, root. From there you can move anywhere in the file system.
The relative pathname is just one of the mechanisms built into the file system to alleviate the need to use full pathnames. By convention, the path-prefix ``..'' refers to the parent-directory (that is, the directory containing the current-directory), and the path-prefix ``.'' refers to the current-directory.
A relative pathname begins with one of the following: a directory or file name; a ``.'' (pronounced dot), which is a shorthand notation for your current directory; or a ``..'' (pronounced dot dot), which is a shorthand notation for the directory immediately above your current directory in the file system hierarchy. The directory represented by ``..'' (dot dot) is called the parent directory of ``.'' (your current directory).
To ascend to the parent of your current directory, you can use the ``..'' notation. This means that if you are in the directory named ``draft'' in the sample file system, ``..'' is the pathname to ``starship'', and ''../..'' is the pathname to ``starship'''s parent directory, ``home''.
From ``draft'', you can also trace a path to the file ``sanders'' by using the pathname ``../letters/sanders''. The ``..'' brings you up to ``starship''. Then the names ``letters'' and ``sanders'' take you down through the ``letters'' directory to the ``sanders'' file.
Keep in mind that you can always use a full pathname in place of a relative one.
``Example pathnames'' shows some examples of full and relative pathnames.
|full pathname of the root directory
|full pathname of the bin directory that belongs to the usr directory that belongs to root (contains most executable programs and utilities)
|full pathname of the tools directory belonging to the bin directory that belongs to the starship directory belonging to home that belongs to root
relative pathname to the file or directory
tools in the directory bin.
If the current directory is /, then the UNIX system searches for /usr/bin/tools. However, if the current directory is starship, then the system searches the full path /home/starship/bin/tools.
|relative pathname of a file or directory tools in the current directory.
Moving files to the directory ``.'' moves them into the current-directory. In addition, files can be linked across directories. Linking a file to the current-directory obviates the need to supply a path-prefix when accessing the file. When created, a process has one current-directory and one root-directory associated with it, which can differ for other processes. See ``Process management'' for more detail on processes.