1 我想建一个source.txt文件的硬链接,名字取做linksource.txt
[rocrocket@wupengchong test]$ cat source.txt
Hello!Source!
[rocrocket@wupengchong test]$ ll source.txt
-rw-rw-r– 1 rocrocket rocrocket 14 2008-10-23 09:25 source.txt
[rocrocket@wupengchong test]$ ln source.txt linksource.txt
[rocrocket@wupengchong test]$ ll -i source.txt linksource.txt
1178119 -rw-rw-r– 2 rocrocket rocrocket 14 2008-10-23 09:25 linksource.txt
1178119 -rw-rw-r– 2 rocrocket rocrocket 14 2008-10-23 09:25 source.txt
可以看到,我们建立硬链接的命令格式是“ln 目标 链接名称”,我们用ln source.txt linksource.txt来建立了一个source.txt文件的硬链接。之后,我们用ll -i,即ls -li命令来查看了文件的信息,其中-i选项表示列出每个文件的inode节点ID,我们可以发现source.txt和linksource.txt的 inode号是完全一样的,都是1178119,这就说明它们都指向同一个数据块。这就是硬链接。
但要注意,硬链接不允许跨分区来建立,也就是不允许跨文件系统来建立,即使是同一类型的文件系统也是不行的。所以硬链接只能在一个分区内建立。
2 我想建立一个source.txt文件的软链接,名字叫做softsource。
[rocrocket@wupengchong test]$ ln -s source.txt softsource
[rocrocket@wupengchong test]$ ll -i source.txt softsource
1178211 lrwxrwxrwx 1 rocrocket rocrocket 10 2008-10-23 09:32 softsource -> source.txt
1178119 -rw-rw-r– 2 rocrocket rocrocket 14 2008-10-23 09:25 source.txt
可以看到,建立软链接也是使用ln命令,但是必须加上-s选项,建立软链接的命令格式为“ln -s 目标 链接名称”。之后我们可以使用ls命令可以查看到软链接softsource和source.txt的inode号是不一样的,这说明他们完全指向两个不 同的数据库快。而且,细心的朋友能够观察到软链接文件的权限栏首字符为l,这也是软链区别于普通文件的地方之一。
如果这个时候,我们删除了source.txt文件,则软链接softsource就会编程红色字体,这表示警告,这是一个有问题的文件,它无法找到它所标识的文件source.txt了。
3 刚才的两个例子都是链接文件的,那链接目录呢,我想试试!
[rocrocket@wupengchong test]$ ln tempdir linkdir
ln: `temp’: hard link not allowed for directory
我想硬链接一个目录tempdir,但是报错了!是的,硬链接是不允许链接到目录的。(待会儿来分析原因,少安毋躁)
[rocrocket@wupengchong test]$ ln -s temp linkdir
目录的软链接的建立是允许的,看,我建立了一个temp目录的软链接linkdir,以后我完全可以cd linkdir来进入temp目录了。