Flylib.com

Books Software

 
 
 

Section 3.12. Absolute and Relative Pathnames


[Page 52 ( continued )]

3.12. Absolute and Relative Pathnames

Before I continue with the sample Linux session, it's important to introduce you to the idea of pathnames .


[Page 53]

Two files in the same directory may not have the same name , although it's perfectly OK for several files in different directories to have the same name. For example, Figure 3-9 shows a small hierarchy that contains a "ksh" process and three files called "myFile."

Figure 3-9. Different files may have the same name.


Although these files have the same name, they may be unambiguously specified by their pathname relative to "/," the root of the directory hierarchy. A pathname is a sequence of directory names that lead you through the hierarchy from a starting directory to a target file. A pathname relative to the root directory is often termed an absolute or full pathname. Figure 3-10 shows the absolute pathnames of the "A," "B," and "C" instances of "myFile."

Figure 3-10. Absolute pathnames.

File

Absolute PathName

A

/home/glass/myFile

B

/home/myFile

C

/bin/myFile


A process may also unambiguously specify a file by using a pathname relative to its current working directory. The Linux file system supports special fields that may be used when supplying a relative pathname (Figure 3-11).

Figure 3-11. Current and parent directories.
(This item is displayed on page 54 in the print version)

Field

Meaning

.

current directory

..

parent directory


For example, Figure 3-12 shows the pathnames of the three instances of "myFile" relative to the "ksh" process located in the "/home/glass" directory.


[Page 54]
Figure 3-12. Relative pathnames.

File

Relative Pathname

A

myFile

B

../myFile

C

../../bin/myFile


Note that the pathname "myFile" is equivalent to "./myFile," but the second form is usually not used unless you need to specify a command in your current directory when "." is not in your search path (more on this later).



[Page 54 ( continued )]

3.13. Creating a File

I already had an idea of what the first draft of my song's lyrics would look like, so I decided to store them in a file called "heart." Ordinarily, I would use a Linux editor such as vim or emacs to create the file, but this is a beginner's chapter, so I used a simpler utility called cat to achieve the same result. Figure 3-13 describes how cat works.

Figure 3-13. Description of the cat command.

Utility : cat -n { fileName }*

The cat utility takes its input from standard input or from a list of files and displays them to standard output. The -n option adds line numbers to the output. cat is short for "concatenate," which means "to connect in a series of links."


By default, the standard input of a process is the keyboard and the standard output is the screen. We can send the standard output of a process to a file instead of the screen by making use of a shell facility called output redirection . If you follow a command by a > character and the name of a file, the output from the command is saved to the file. If the file doesn't already exist, it is created; otherwise , its previous contents are overwritten. Right now, use this feature without worrying how it works; Chapter 5, "The Linux Shells," explains it all in detail. To create the first draft of my lyrics, I entered the following text at the shell prompt:


[Page 55]

$

cat > heart

...store keyboard input a the file 'heart'.
I hear her breathing,
I'm surrounded by the sound.
Floating in this secret place,
I never shall be found.

^D

...tell cat that the end-of-input has been reached.
$ _