在这节将要学习linux的连接档,在之前用"ls -l" 查看文件属性的命令时, 其中第二个属性是连接数。那么这个连接数是干什么的?这就要理解inode。

先说一下文件是怎么存储的。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector),每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。"块"的大小,最常见的是4KB,即8个“扇区”组成一个“块"。文件数据都储存在“块”中,那么就得有个地方来储存文件的信息(比如创建者,创建时间等),这个区域就叫“inode”,即索引节点。

当创建一个文件时,系统分配一个inode及能够装载文件大小的blocks给它,inode记录文件的属性,包括block的位置,block记录文件内容。

当创建一个目录时,系统分配一个inode和一个block,若此目录下的文件过多的话,会开辟一个新的block给它。inode记录目录的属性,block记录这个目录下的所有文件和子目录对应的inode,通过block可以找到某个文件的inode位置,从而找到文件内容。

这里可以通过“stat +文件名” 的命令来查看文件inode的信息,如下图:

然而,在硬盘的同一个文件可以通过不同的路径来访问它。接下来要讲的软、硬连接就是建立在inode和block的关系之上。

硬连接:一般情况下,一个文件名对就一个inode,但Linux允许多个文件名对应同一个inode,也就是说通过不同的文件名可以访问同一个内容。删除一个文件名不影响其它文件名的访问。语法如下:

ln 源文件 目标文件(要创建的文件)
#这里只能是文件,不可以是目录

例如:

先查看一下当前一个叫yum.sh文档的连接数,如图所示为2

执行添加硬连接的指令:

执行指令之后,在打开目录可以发现,出现新的文件yum_hLink.sh

再查看yum.sh的连接数,如下图所示,连接数增加了一个:

软连接(或符号链接):若文件(目录)A是文件(目录)B的软连接,A的内容是B的路径,想当于A是B的快捷方式。当删除A时,不影响B的访问;当删除B时,就会报错。

语法:

ln -s 源文文件或目录 目标文件或目录
#软连接可以是目录

例如,test 是一个目录:

执行指令后,当前目录下多了一个test_sLink目录

查看连接数,发现test 目录的连接数并没有增加,而test_sLink 以 "->"形式来表示是test的软连接:

最新文章

  1. python基础之元组、文件操作、编码、函数、变量
  2. phpcms上线步骤,无法生成缓存,页面空白原因
  3. mac 搭建git服务器
  4. A real ROCA using Bootstrap, jQuery, Thymeleaf, Spring HATEOAS and Spring MVC
  5. (转)cocos2dx 内存管理
  6. <转载>Div+Css布局教程(-)CSS必备知识
  7. 圆形border渐变加载
  8. Android语音识别--->>RecongnizerIntent实现
  9. 学JAVA第十二天,今天写java控制台输入流及String的类型转换
  10. JavaWeb学习日记----XML的解析
  11. Python交互图表可视化Bokeh:4. 折线图| 面积图
  12. linux bash timeout
  13. TCP和UDP基本原理
  14. Git版本退回和修改
  15. JVM 系列(二)内存模型
  16. Ubuntu 16.04下安装golang
  17. 团队项目个人进展——Day10
  18. Java操作Sqoop对象
  19. [转]Gridview实现多列排序,并显示图标
  20. Spring学习笔记 7.1 Spring MVC起步

热门文章

  1. Tomcat 80 端口被占,解决方案
  2. 四大OLAP工具选型浅析
  3. quartz.net动态添加job
  4. C#实现Web文件上传的两种方法
  5. DEDECMS织梦常用二开自定义标签
  6. C#yield return和yield break
  7. IIS服务器 远程发布(Web Deploy)配置 VS2010 开发环境 Windows Server 2008服务器系统
  8. NHibernate-Generator主键生成方式
  9. Node.js日志框架选型比較:Winston
  10. wpa_cli P2P 连接相关的调试命令