硬链接、软链接、ln命令
linux 下的硬链接、软链接软链接软连接主要目的是升级之后向前兼容。软链接相当于快捷方式。当我删除源文件之后,后面的文件就找不到前面的文件了。软连接相当于:a->b;b->inode.例子:软连接的建立ln -slibiptc.so.0.0.0libip6tc.so.0//原来的库是libip6tc.so.0,...
·
一、软链接
软连接主要目的是升级之后向前兼容。软链接相当于快捷方式。当我删除源文件之后,后面的文件就找不到前面的文件了。
软连接相当于: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
更多推荐
已为社区贡献1条内容
所有评论(0)