Pages

Your Ad Here

This Blog is not to read or go through

because, I have never been such a mess


Search the blog instead

Saturday, December 1, 2007

Hardlink and softlink

There are two concepts of `link' in Unix, usually called hard link and
soft link. A hard link is just a name for a file. (And a file can have
several names. It is deleted from disk only when the last name is
removed. The number of names is given by ls(1). There is no such thing
as an `original' name: all names have the same status. Usually, but not
necessarily, all names of a file are found in the filesystem that also
contains its data.)

A soft link (or symbolic link, or symlink) is an entirely different
animal: it is a small special file that contains a pathname. Thus,
soft links can point at files on different filesystems (possibly NFS
mounted from different machines), and need not point to actually exist-
ing files. When accessed (with the open(2) or stat(2) system calls), areference to a symlink is replaced by the operating system kernel with
a reference to the file named by the path name. (However, with rm(1)
and unlink(2) the link itself is removed, not the file it points to.
There are special system calls lstat(2) and readlink(2) that read the
status of a symlink and the filename it points to. For various other
system calls there is some uncertainty and variation between operating
systems as to whether the operation acts on the symlink itself, or on
the file pointed to.)

ln makes links between files. By default, it makes hard links; with
the -s option, it makes symbolic (or `soft') links.

If only one file is given, it links that file into the current direc-
tory, that is, creates a link to that file in the current directory,
with name equal to (the last component of) the name of that file. (This
is a GNU extension.) Otherwise, if the last argument names an existing
directory, ln will create links to each mentioned source file in that
directory, with a name equal to (the last component of) the name of
that source file. (But see the description of the --no-dereference
option below.) Otherwise, if only two files are given, it creates a
link named dest to the file source. It is an error if the last argu-
ment is not a directory and more than two files are given.

No comments:

Your Ad Here