计算机基础知识
计算机存储与软硬链接
文件存储在硬盘上,硬盘存储的最小单位是扇区(sector,每个扇区可以存储512B大小的数据)。而操作系统读取文件按照块来读取(多个连续的扇区),也就是说操作系统读取文件的最小存取单位是块(block,通常是4KB)。
除了存储文件数据外,计算机还会存储文件的元信息(文件的大小、创建者、文件的时间戳、读写执行的权限等信息),这种存储文件元信息的结构就叫inode,我们可以使用stat来查看文件的元信息。每一个inode都有一个唯一的id,linux系统中通过inode的号码来识别文件。在linux中目录也是一种文件,该文件由inode和文件名组成。
查看目录文件的内容:
总结:
- 硬盘存取的基本单位是扇区(sector,512B),系统存储的基本单位是块(block,4KB)
- 存储文件元信息的结构叫inode(存储文件的大小、时间戳、创建者、读写操作权限等信息)。
- 每个inode都有一个唯一的号码,系统用这个号码去识别文件。
- linux中目录也是一种文件,由文件名和inode的id组成。
硬链接:
一般情况下一个文件名对应一个inode,但是linux允许多个文件名对应一个inode。这表示我们可以用不同的文件名去访问同一个文件,并且删除源文件不影响其他文件,修改源文件所有文件内容都被修改,这种机制就叫硬链接。
不能用于目录,只能用于文件。
命令:ln source target(把source指向target)
软链接:
新建了一个文件B,B拥有自己的inode,但是这个inode是指向源文件A的inode的,这个时候删除源文件,访问B时就说报“文件不存在”。
命令:ln -s source target(把source指向target)
创建一个软链接:
软链接可以用于文件和目录。npm link就是使用软链接的方式实现的(将模块别名aaa写入到/usr/local/bin中,而aaa指向实际的模块文件,全局执行aaa实际上就是在执行模块文件)。
Npm link原理:
总结
- 硬链接只能用于存在的文件,不能用于目录,并且所有硬链接的inode是一样的。
- 软链接可以用于文件、目录,软链接的inode都是不同的。
参考文献