linux下的链接文件,尤其是软链接使用非常的频繁;
链分为硬链接(hard link)与软链接(symbolic link) 两种;关键在于inode;
硬链接:
当系统需要读取一个文件时,就会去读取inode table, 然后再去根据 inode中的信息到志区域去把数据读取出来。 而硬链接是直接建立了一个指向文件位置块区域的一个inode。 不过几个限制:1)不能跨文件系统,因为不同的文件系统的inode table是不一样的;2)不能链接目录;
软链接:
跟硬链接不同,软链接建立了一个独立的文件,而这个文件的作用就是当读取这个链接文件时,它们转发到该文件所链接的文件上。它就相当于我们windows系统下的快捷键啊;很小的;
命令:ln
语法 ln [-s] [被链接文件] [链接文件]
ln的常用的选项为 -s, 当加上时,为软链接, 当不加时,为硬链接;
举例:
下面有两个文件:
yinheyi@yinheyi-Aspire-V5-471G:~/play$ ls -l 总用量 476 -rw-r--r-- 1 yinheyi yinheyi 306788 7月 27 22:19 caffeNet.ipynb -rw-r--r-- 1 yinheyi yinheyi 179976 6月 1 21:09 googLeNet.ipynb
我们为 caffeNet.ipynb 文件分别建立硬链接与软链接;
yinheyi@yinheyi-Aspire-V5-471G:~/play$ ln caffeNet.ipynb caffeNet_硬链接.ipynb yinheyi@yinheyi-Aspire-V5-471G:~/play$ ln -s caffeNet.ipynb caffeNet_软链接.ipynb
现来观察观察:
yinheyi@yinheyi-Aspire-V5-471G:~/play$ ls -l 总用量 776 -rw-r--r-- 2 yinheyi yinheyi 306788 7月 27 22:19 caffeNet.ipynb lrwxrwxrwx 1 yinheyi yinheyi 14 7月 28 09:31 caffeNet_软链接.ipynb -> caffeNet.ipynb -rw-r--r-- 2 yinheyi yinheyi 306788 7月 27 22:19 caffeNet_硬链接.ipynb -rw-r--r-- 1 yinheyi yinheyi 179976 6月 1 21:09 googLeNet.ipynb
看到了什么?是不是软链接很小,就14K, 而硬链接的大小与原文件的大小相同,都为306788k;
完毕;