一、软链接

软连接主要目的是升级之后向前兼容。软链接相当于快捷方式。当我删除源文件之后,后面的文件就找不到前面的文件了。
软连接相当于:a->b;b->inode.
例子:软连接的建立
ln -s libiptc.so.0.0.0 libip6tc.so.0      //原来的库是libip6tc.so.0,升级后的库是libiptc.so.0.0.0。
                                                           升级之后我继续保留原来的名字:libip6tc.so.0,用他指向实                                                             际使用的库。这样用户就不需要修改名字了。
libip6tc.so.0 -> libiptc.so.0.0.0         //ll 之后的显示。这样我对libip6tc.so.0进行操作,其实就是                                                                 对 libiptc.so.0.0.0进行操作。

二、硬链接

linux下每一个文件和目录都有唯一的一个inode节点。
硬链接就是 有几个名字可以到磁盘上的那个inode。 相当于:a->inode;b->inode;c->inode  
ll 命令后面的数字显示的就是硬链接(下面例子中的15)的数目。
磁盘在inode上存对应的数据。如果一个文件硬链接数为n,删除一个之后没有什么影响。只有当最后一个硬链接删除之后,才不能用。
但是这个不能用,指的是我没有方法找到inode了,并不代表操作系统删除了这个inode的数据。只要这个inode没有被覆盖,还是能恢复的。
例子1:硬链接的理解
[liupc@ubuntu ~/Projects]$>ls -lia                                        //-i参数可以显示inode
534673 drwxrwxr-x  5 liupc liupc 4096 May 15 05:22 .        //534673就是当前目录的inode。而 上层目录的inode是400068.
400068 drwxr-xr-x  15 liupc liupc 4096 May 15 05:22  ..
[liupc@ubuntu ~/Projects]$>cd ..                                        //进入到上层目录
[liupc@ubuntu ~]$>ls -lia 
400068 drwxr-xr-x  15 liupc liupc 4096 May 15 05:22  .          //可以看到"."的inode也是400068.
393217 drwxr-xr-x  3 root  root  4096 May 12 06:34 ..
[liupc@ubuntu /home]$>ls -li
total 4
400068 drwxr-xr-x  15 liupc liupc 4096 May 15 05:22 liupc  //可以看到"liupc"的inode也是400068. 第一个中".."和第二个中的"."其实就 是"/home/liupc"的硬链接。因为他们有共同的inode.(软连接的两个文件具有不 同的inode.)
例子2:硬链接的建立
ln Depth_Search.c 111                                                                 //建立硬链接:111
root@ubuntu:/home/liupc/Projects# ls -il                                     //通过ls -il 可以看到:两个文件的inode相同。硬链接数变成了2.
535496 -rw-rw-r--  2 liupc liupc  718 May 15 05:22 111                    删除任意一个没有影响。
535496 -rw-rw-r--  2 liupc liupc  718 May 15 05:22 Depth_Search.c
Logo

更多推荐