苏秦陶侃博客

计算机基础知识

字数统计: 667阅读时长: 2 min
2018/12/17 Share

计算机基础知识

计算机存储与软硬链接

  文件存储在硬盘上,硬盘存储的最小单位是扇区(sector,每个扇区可以存储512B大小的数据)。而操作系统读取文件按照块来读取(多个连续的扇区),也就是说操作系统读取文件的最小存取单位是块(block,通常是4KB)。

  除了存储文件数据外,计算机还会存储文件的元信息(文件的大小、创建者、文件的时间戳、读写执行的权限等信息),这种存储文件元信息的结构就叫inode,我们可以使用stat来查看文件的元信息。每一个inode都有一个唯一的id,linux系统中通过inode的号码来识别文件。在linux中目录也是一种文件,该文件由inode和文件名组成。

查看目录文件的内容:
image-20181217113530225

总结:

  1. 硬盘存取的基本单位是扇区(sector,512B),系统存储的基本单位是块(block,4KB)
  2. 存储文件元信息的结构叫inode(存储文件的大小、时间戳、创建者、读写操作权限等信息)。
  3. 每个inode都有一个唯一的号码,系统用这个号码去识别文件。
  4. linux中目录也是一种文件,由文件名和inode的id组成。

硬链接:

  一般情况下一个文件名对应一个inode,但是linux允许多个文件名对应一个inode。这表示我们可以用不同的文件名去访问同一个文件,并且删除源文件不影响其他文件,修改源文件所有文件内容都被修改,这种机制就叫硬链接。

不能用于目录,只能用于文件。

命令:ln source target(把source指向target)

image-20181217233858659

软链接:

  新建了一个文件B,B拥有自己的inode,但是这个inode是指向源文件A的inode的,这个时候删除源文件,访问B时就说报“文件不存在”。

​ 命令:ln -s source target(把source指向target)

创建一个软链接:

image-20181217232156312

  

  软链接可以用于文件和目录。npm link就是使用软链接的方式实现的(将模块别名aaa写入到/usr/local/bin中,而aaa指向实际的模块文件,全局执行aaa实际上就是在执行模块文件)。

Npm link原理:

image-20181217232854383

总结

  1. 硬链接只能用于存在的文件,不能用于目录,并且所有硬链接的inode是一样的。
  2. 软链接可以用于文件、目录,软链接的inode都是不同的。

参考文献

  1. http://taobaofed.org/blog/2016/07/29/puzzled-by-link/

  2. https://github.com/atian25/blog/issues/17

CATALOG
  1. 1. 计算机基础知识
    1. 1.1. 计算机存储与软硬链接
      1. 1.1.1. 硬链接:
      2. 1.1.2. 软链接: