符号链接又称软链接,是指将一个文件指向另外一个文件的文件名。这种符号链接的关系由 ln -s 命令行来建立。首先查看一下目录中的文件信息:
$ ls -l
-rwxr-xr-x 1 Mike users 58 2006-07-01 10:05 file1
$ cat file1
This is file1.
使用ln命令和-s选项建立文件file 1的符号链接文件file 2:
$ ln -s file1 file2
该命令产生一个新的文件file 2,它和已经存在的文件file 1建立起符号链接关系:
$ cat file2
This is file1.
$ ls -l
-rwxr-xr-x 1 Mike users 58 2006-07-01 10:15 file1
lrwxrwxrwx 1 Mike users 5 2006-07-01 10:17 file2 -> file1
可以看出file 2这个文件很小,因为它只是记录了要指向的文件名而已,请注意那个从文件file 2指向文件file 1的指针。
为什么cat命令显示的file 2的内容与file 1相同呢?因为cat命令在寻找file 2的内容时,发现file 2是一个符号链接文件,就根据file 2记录的文件名找到了file 1文件,然后将file 1的内容显示出来。明白了file 1和file 2的符号链接关系,就可以理解为什么file 1的链接数仍然为1,这是因为file 1指向的硬盘空间仍然只有file 1一个文件在指向。
如果现在删除了file 2,对file 1并不产生任何影响;而如果删除了file 1,那么file 2就因无法找到文件名称为file 1的文件而成为死链接。
$ rm -f file1
$ ls -l
lrwxrwxrwx 1 Mike users 5 2006-07-01 10:17 file2 -> file1
$ cat file2
cat: file2: No such file or directory