1.ln
- 命令名称:ln
- 命令英文原意:link
- 命令所在路径:/bin/ln
- 执行权限:所有用户
- 功能描述:生成链接文件
ln [-s] [源文件] [目标文件]
1.1生成软链接
使用ln命令加上-s参数可以生成源文件的指向文件,也就是软链接文件。
ln -s /etc/issue /tmp/link/issue.soft
其中的/etc/issue是欢迎信息文件。我们给他做一个软链接。
链接文件会指向原文件。
1.2 生成硬链接
使用ln命令可以生成硬链接。
ln /etc/issue /tmp/link/issue.hard
硬链接和文件一样。
2.解读软链接与硬链接
2.1 软链接
首先我们将原文件与软链接文件进行对比。
原文件:
软链接:
两个文件的属性有非常大的不同。
软链接文件的特点::
lrwxrwxrwx: l :link
rwxrwxrwx:777权限,所有人 所有组 其他人都有最大的使用权限。
我们可以将软链接文件,类比为windows的快捷方式。便于我们进行规划,方便管理。
如上图:issue.soft -> /etc/issue ,当我们运行issue.soft,他要找到原文件/etc/issue来执行。所以最后用户是否可以使用,是由原文件/etc/issue 的权限来决定的,所以我们可以给他777权限。
1 root root 10 Mar 11 09:01 /tmp/link/issue.soft -> /etc/issue
10:很小,只是一个符号链接
->:有一个很明显的箭头指向,这一点在硬链接文件中是没有的。
- 可以针对目录使用。
2.2 硬链接
将硬链接与原文进行比较。
原文件:
硬链接:
进行对比查看:
我们发现,除了文件名和所在的位置不一样,其他都一样,包括文件的大小。这就像是拷贝一样,cp -p 。
硬链接与cp -p的区别:
- 硬链接相当于cp -p + 同步更新。
硬链接与原文件内容相同。
向硬链接文件中写入内容:
- 硬链接不能跨分区。
- 能针对目录使用。
2.3硬链接与软链接的区别
2.3.1删除原文件
我们现在删除原文件:
查看软链接内容:
查看硬链接内容:
这就是软硬链接在原文件删除后的区别,软链接没有了指向,硬链接依旧可以查看使用。
2.3.2 通过i节点区分
每个文件的i节点是唯一的,是系统在索引的时候一个文件的唯一标志,两个文件就算名称相同,但是他们的i节点一定是不同的。
而且在linux进程有自己进程id,用户有用户id,文件有i节点,这都是唯一的标志。
现在我们查看原文件,软链接,硬链接的i节点有什么关系。
我们看到,硬链接的i节点与原文件的i节点相同,而软链接的i节点是一个新的i节点。
注意:一个文件值有一个i节点,但是一个i节点不一定对应一个文件。
当我们对一个文件进行写操作的时候,对内核来说,就是对这个i节点进行操作,所以原文件与硬链接的i节点相同,可以同步更新。