Unix连接知识讲解之文件的连接和符号连接

系统 其他OS
我们可以看到文章中的例子使用ln创建了一个Unix连接,然后在ls的结果中可以看到第二列的数字为2,这表示这个文件有两个连接。

Unix系统中使用i节点(i node)来记录真实的物理文件及其位置,文件名只是指向i节点的一个Unix连接。因此每个文件可以有多个名字,每个名字就称为文件的一个连接,而同一个文件的所有连接所指向的i节点件完全相同。

但在删除时只有全部删除这个i节点的全部Unix连接,才能删除i节点、即删除这个文件本身。
 

  1. $ ln l1 l2  
  2. $ ls -l l*  
  3. -rwxr-xr-x 2 user wheel 53212 Dec 4 12:36 l1  
  4. -rwxr-xr-x 2 user wheel 53212 Dec 4 12:36 l2  

上面的例子使用ln创建了一个Unix连接,然后在ls的结果中可以看到第二列的数字为2,这表示这个文件有两个连接。这样的连接可以建立在不同的目录中,但所有连接所在的目录必须在同一个文件系统中,才能使用同样的i节点。由于连接是直接指向标识物理文件的i节点,因此这种连接又称为硬连接。

另一种更灵活的连接方式是符号Unix连接,它没有指向物理文件的i节点,而是直接指向目录树上的另一个入口,那么当系统访问这个文件时,就沿着它指向的目录树的位置去查找具体文件。

这样就能对任何文件系统中的文件和目录建立Unix连接,因此称为软连接。符号连接可以跨越文件系统,灵活性很大,能够突破物理文件系统的限制维护目录树的一致性,对于系统管理和维护很有用。

但是这种连接方式需要对目录树进行多次查找,增加了文件操作的额外步骤,因此效率较低,因此不应该使用多级连接,及某个符号连接指向的目录还是一个符号连接,甚至发生符号Unix连接的循环。应该尽量少用符号Unix连接,并避免多级符号连接及符号Unix连接的循环。
 

  1. $ ln -s l1 /root/files  
  2. $ ls -l l*  
  3. lrwxrwxrwx 1 user wheel 12 Dec 4 12:36 l1 -> /root/files  

 

【编辑推荐】

  1. InterNet上常见的Unix系统种类概述
  2. Unix FreeBSD的开发者取得很大成功
  3. Unix系统逐渐商业化趋势的讲解
  4. 关于Unix系统的版权事件讲解
  5. BSD Unix在Unix领域内影响更大
责任编辑:小霞
相关推荐

2010-05-04 09:22:10

Unix文件

2021-03-24 09:06:01

MySQL长连接短连接

2015-04-23 18:46:38

TCPTCP协议

2010-05-05 17:46:32

Unix文件系统

2009-07-22 10:53:42

MySQL左连接

2010-11-22 16:22:39

MySQL连接查询

2010-04-30 17:38:31

Unix文本

2021-01-11 05:40:18

HTTPHTTP 协议网络技术

2010-05-05 13:13:55

Unix内核

2018-06-06 11:01:25

HTTP长连接短连接

2010-11-08 15:47:01

SQL Server外

2010-11-11 13:51:36

SQL Server内

2010-04-30 13:27:26

Unix cronta

2010-05-05 13:45:21

Unix Telnet

2010-05-04 12:25:28

Unix链接

2010-04-30 13:38:51

Unix at命令

2010-05-10 15:37:14

Unix文件

2015-08-21 13:50:49

Oracle连接

2009-11-04 15:11:42

ADO.NET连接模式

2011-03-28 14:04:10

SQL左连接右连接
点赞
收藏

51CTO技术栈公众号