Linux下硬链接与软链接

时间:2023-03-08 17:55:15
Linux下硬链接与软链接

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;

完毕;

参考: http://www.apelearn.com/study_v2/chapter7.html#id10