Linux学习-链接

正在学习Linux,记录一下学习历程。奋斗


i节点

当创建文件时,完成了两件事:

1. 在存储设备上保留一块空间用来存储数据

2. 创建一个称为索引节点或i节点的结构,来存放文件的基本信息

i节点包含使用文件所需的全部文件系统信息。可以通过stat命令查看i节点内容。

文件系统将所有的i节点存放在一个大表中,被称为i节点表。

在i节点表中,每个i节点由所谓的所引号或i节点号表示。

目录中只包含文件名称及文件的i节点号。

每当程序需要使用文件时,程序在目录中查找文件名将是一件简单的事,只需使用相应的i节点号查找i节点,然后使用i节点中的信息访问文件即可。


链接

链接:文件名和i节点之间的连接。

从概念上讲,链接将文件名和文件本身连接起来。这也是i节点不包含文件名的原因。

一个文件可以有不止一个名称。

文件的唯一标识符是其i节点号,而不是它的名称。

因此,多个文件名称可以引用同一个i节点号。

链接的基本想法是同一个文件可能拥有不同的含义(取决于文件使用的环境)。

链接是基本文件操作cp,mv,rm,ln的基础。

系统平等地对待所有的链接。

文件不由它们的名称或位置控制,而只受所有权和权限控制。


创建新链接

每当创建文件时,文件系统就会自动在文件名和i节点间创建一个链接。

当希望为已有文件创建一个新链接时,使用ln(link)命令。

ln file newname

为单个文件创建新链接。

file是文件的已有名称,newname是希望赋予链接的新名称。

ln file...  firectory

为一个或多个普通文件创建新链接,并将新链接放在指定的目录中。

file是文件的名称,directory是希望放置新链接的目录名称。

ps:

这里的文件名称均指文件的路径名,即在目录树中的定位。


移除链接

通过移除目录条目,消除文件名和i节点号之间的连接。

如果文件已经没有链接,删除该文件。


符号链接

上文中讨论的链接类型允许我们为同一个文件指定不止一个名称。

但是有两个限制:

1. 不能为目录创建链接

2. 不能为不同文件系统中的文件创建链接

符号链接:包含的不是文件的i节点号,而是源文件的路径名。可以创建不同文件系统中的目录或文件的链接。

用ln -s 创建。

符号链接文件的文件类型指示符为l

文件只有4个字节长,仅能容下实际文件的路径名。该文件是一个符号链接,而不是一个只有4个字符的普通文件,这一事实在该文件的i节点中注明。


硬链接&软链接

硬链接:常规的链接

软链接:符号链接

使用ls -l时显示的链接数是硬链接的数量。





猜你喜欢

转载自blog.csdn.net/qq_31730735/article/details/80550178