[ Bottom of Page | Previous Page | Next Page | Contents | Index | Library Home | Legal | Search ]

System User's Guide: Operating System and Devices

Linking Files and Directories

Links are connections between a file name and an index node reference number (i-node number), the internal representation of a file. Because directory entries contain file names paired with i-node numbers, every directory entry is a link. The i-node number actually identifies the file, not the file name. By using links, any i-node number or file can be known by many different names.

For example, i-node number 798 contains a memo regarding June sales in the Omaha office. Presently, the directory entry for this memo is as follows:

i-node Number File Name
798 memo

Because this information relates to information stored in the sales and omaha directories, linking is used to share the information where it is needed. Using the ln command, links are created to these directories. Now the file has three file names as follows:

i-node Number File Name
798 memo
798 sales/june
798 omaha/junesales

When you use the pg or cat command to view the contents of any of the three file names, the same information is displayed. If you edit the contents of the i-node number from any of the three file names, the contents of the data displayed by all of the file names will reflect any changes.

Types of Links

Links are created with the ln command and are of the following types:

hard link Allows access to the data of a file from a new file name. Hard links ensure the existence of a file. When the last hard link is removed, the i-node number and its data are deleted. Hard links can be created only between files that are in the same file system.
symbolic link Allows access to data in other file systems from a new file name. The symbolic link is a special type of file that contains a path name. When a process encounters a symbolic link, the process may search that path. Symbolic links do not protect a file from deletion from the file system.

Note: The user who creates a file retains ownership of that file no matter how many links are created. Only the owner of the file or the root user can set the access mode for that file. However, changes can be made to the file from a linked file name with the proper access mode.

A file or directory exists as long as there is one hard link to the i-node number for that file. In the long listing displayed by the ls -l command, the number of hard links to each file and subdirectory is given. All hard links are treated equally by the operating system regardless of which link was created first.

Linking Files (ln Command)

Linking files with the ln command is a convenient way to work with the same data in more than one place. Links are created by giving alternate names to the original file. The use of links allows a large file, such as a database or mailing list, to be shared by several users without making copies of that file. Not only do links save disk space, but changes made to one file are automatically reflected in all the linked files.

The ln command links the file designated in the SourceFile parameter to the file designated by the TargetFile parameter or to the same file name in another directory specified by the TargetDirectory parameter. By default, the ln command creates hard links. To use the ln command to create symbolic links, designate the -s flag.

If you are linking a file to a new name, you can list only one file. If you are linking to a directory, you can list more than one file.

The TargetFile parameter is optional. If you do not designate a target file, the ln command creates a file in your current directory. The new file inherits the name of the file designated in the SourceFile parameter.

Note: You cannot link files across file systems without using the -s flag.

For example, to create another link to a file named chap1, type:

ln -f chap1 intro

Press Enter. This links chap1 to the new name, intro. When the -f flag is used, the file name intro is created if it does not already exist. If intro does exist, the file is replaced by a link to chap1. Then both the chap1 and intro file names will refer to the same file. Any changes made to one file also appear in the other.

For example, to link a file named index to the same name in another directory named manual, type:

ln index manual

Press Enter. This links index to the new name, manual/index.

For example, to link several files to names in another directory, type:

ln chap2 jim/chap3 /home/manual

Press Enter. This links chap2 to the new name /home/manual/chap2 and jim/chap3 to /home/manual/chap3.

For example, to use the ln command with pattern-matching characters, type:

ln manual/* .

Note: You must type a space between the asterisk and the period.

Press Enter. This links all files in the manual directory into the current directory, dot (.), giving them the same names they have in the manual directory.

For example, to create a symbolic link, type:

ln -s /tmp/toc toc

Press Enter. This creates the symbolic link, toc, in the current directory. The toc file points to the /tmp/toc file. If the /tmp/toc file exists, the cat toc command lists its contents.

To achieve identical results without designating the TargetFile parameter, type:

ln -s /tmp/toc

Press Enter.

See the ln command in the AIX 5L Version 5.2 Commands Reference for the complete syntax.

Removing Linked Files

The rm command removes the link from the file name that you indicate. When one of several hard-linked file names is deleted, the file is not completely deleted because it remains under the other name. When the last link to an i-node number is removed, the data is removed as well. The i-node number is then available for reuse by the system.

See the rm command in the AIX 5L Version 5.2 Commands Reference for the complete syntax.

[ Top of Page | Previous Page | Next Page | Contents | Index | Library Home | Legal | Search ]