【转】文件的硬链接和软链接
2019-01-28 本文已影响0人
RonZheng2010
参考资料
ln 用法
https://blog.csdn.net/mengzuchao/article/details/80426316
1. inode 节点
Linux内核为每一个文件分配一个inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里。进程访问文件时,索引结点被复制到内存,这样就能快速访问文件了。
2. 硬链接
如下命令给文件a创建硬链接b:
ln a b
硬链接b的文件项直接指向a的inode,系统并不为它重新分配inode。一旦创建,b和a就是平等的了。
从如下的ls输出可以看到a和b的inode号都是1775505。删掉a或者b,inode的链接数减一,两个都删除,inode的链接数减为0,对应的inode项才真正从系统删除。
$ ls -il
1775505 -rw-rw-r-- 2 percherry percherry 13 Jan 28 11:05 a
1775505 -rw-rw-r-- 2 percherry percherry 13 Jan 28 11:05 b
创建硬链接有限制:
- 只能在同一个文件系统内部创建
3. 软链接
如下命令给文件a创建软链接c:
ln -s a c
软链接是一个新文件,它本质上是一个快捷方式。系统可以通过它跳转到它指向的文件。从下面的ls的输出可以看到c和a的inode值不同。
$ ls -il
1775505 -rw-rw-r-- 2 percherry percherry 13 Jan 28 11:05 a
1774240 lrwxrwxrwx 1 percherry percherry 1 Jan 28 11:12 c -> a