在Linux中,为了方便文件的使用,引入了两种链接,即为软链接和硬链接。
那么什么是硬链接,什么又是软链接呢。
简单来说,硬链接就是一个inode号对应多个文件名,也就是说一个文件使用了多个别名。
首先先来看看我们要创建硬连接的文件信息:
[root@localhost ~]# ll -i /root //查看原文件的属性信息 |
201386466 -rw-r–r– 1 root root 46 Oct 20 19:18 testlink |
接下来我们来针对testlink文件来创建硬连接文件:
[root@localhost ~]# ln testlink testlink1 //创建名为testlink1的硬链接文件 |
[root@localhost ~]# ll -i //比较两个文件的信息 |
201386466 -rw-r–r– 2 root root 46 Oct 20 19:18 testlink |
201386466 -rw-r–r– 2 root root 46 Oct 20 19:18 testlink1 |
从上面可以看出,硬链接数的地方变成了2,其他无论是权限、时间戳、大小,甚至inode号都相同,我们在把硬链接文件删除看看:
[root@localhost ~]# rm -rf testlink //删除硬链接文件 |
[root@localhost ~]# ll -i //查看原文件信息 |
201386466 -rw-r–r– 1 root root 46 Oct 20 19:18 testlink |
硬链接数有变成了1!可见删除链接文件后链接数递减;
刚才我们只针对文件创建了硬链接文件,接下来我们对目录创建个硬链接试试看。
[root@localhost ~]# ll -i //查看testlink目录的属性信息 |
67111809 drwxr-xr-x 2 root root 6 Oct 20 20:05 testlink |
[root@localhost ~]# ln testlink testlink1 //对比两个文件的信息 |
ln: ‘testlink’: hard link not allowed for directory //报错了!!! |
由上述可见:
硬链接文件实际就是对原数据起的一个别名,它们具有相同的inode即date block;
创建的硬链接会增加其链接数;
删除硬链接后链接数相应减少,但文件的其他信息不影响;
硬链接只针对文件,对目录无法创建硬链接。
接下来说说软链接:
软链接又称符号链接,不同于硬链接的创建方法,软链接创建是需加-s选项,接下来我们试着创建一个软链接:
[root@localhost tmp]# ll -id /root/testlink/ //查看原目录信息 |
可见,软链接可对目录创建,对testlink目录创建软链接前后,自身的属性信息比没有变化,而创建后的软链接文件无论是inode号、权限、时间戳,还是大小均改变,类似于win下的快捷方式
[root@localhost ~]# rm -rf /root/testlink //删除原链接目录 |
[root@localhost ~]# ll -i /tmp/testlink2 |
24206 lrwxrwxrwx 1 root root 17 Oct 13 16:27 /tmp/testlink2 -> ../root/testlink/ //链接文件报错 |
由此软链接不能不能删除原链接,否则由于映射不到原文件而报错,此类似于win中得快捷方式
由上
软链接不仅对文件可创建软链接,对目录同样有效
删除原始文件后,软链接失效(类似win下快捷方式)
软链接的编号为自己的编号,与原文件无关
此外,在日常生产中,尽量以相对路径的方式来创建软链接,这样在整个目录拷贝时,不会因为绝对路径的改变而对程序产生影响。
原创文章,作者:maomaosan2008,如若转载,请注明出处:http://www.178linux.com/53187