1.初识inode:
文件存于硬盘上(硬盘最小存储单元是“扇区”(sector),每个扇区储存512字节)
操作系统读硬盘时,一次性读取一个“块”(block)(8个sector组成)
由多个扇区组成的块——>文件存取的最小单位
文件数据存储在“块”中
储存文件元信息——>inode(索引节点)
2.inode包含文件的元信息,其内容:
文件字节数、文件拥有者的User ID、文件的Group ID、文件的读、写、执行权限、文件的时间戳、链接数(即有多少文件名指向这个inode)、文件数据block位置
(除了文件名以外的所有文件信息,都存在inode中)
3.查看指令
stat example //查看某个文件的inode信息
sudo dumpe2fs -h /dev/hda | grep "Inode size" //查看每个inode节点的大小
df -i //查看每个硬盘分区的inode总数和已经使用的数量
ls -i //整个目录文件里的文件名和inode号码
ls -i example //查看文件名对应的inode号码
4.硬盘格式化时,将硬盘分为2个区域:
数据区(存放文件数据)
inode区 (inode table,存放inode所包含的信息)
5.(1)硬链接(hard link)
Unix/Linux允许,可用不同的文件名访问同样的内容。对文件内容的修改,会影响所有文件名,但删除一个文件名,不影响另一个文件名的访问。(inode号码一样)
创建:ln 源文件 目标文件
特点:有相同的inode号,仅文件名不同的文件(文件有相同的inode及data block);
只能对已存在文件进行创建;
不能对目录进行创建,只能对文件进行创建;
删除一个硬链接文件,不影响其他具有相同inode号码的文件
(2)软链接(soft link 或者 symbol link)
文件A、文件B的inode号码不一样,但文件A的内容是文件B的路径。读取文件A时,系统自动将访问者导向文件B。因此,无论打开那个文件,最终读取的都是文件B。——>此时,文件A称为文件B的“软链接”(或“符号链接”)。文件A依赖于文件B而存在,如果删除文件B,打开文件A就会报错“没有这个文件或目录”。
eg:ln -s test.c(B) try.c(A)
那么 try.c(A)——>test.c(B)
软链接有自己的inode号及用户数据块。
创建:ln -s 源文件或目录 目标文件或目录
特点:软链接有自己的文件属性及权限;
可对不存在文件或目录创建软链接;
软链接可对文件或目录进行创建;
创建软链接时,连接计数不会增加;
删除软链接不影响被指向的文件,但若被指向的文件被删除,则相关软链接变成死链接(若被指向路径文件被重新创建,死链接可恢复为正常的软链接)
6.软链接和硬链接最大的不同:
文件A 指向文件B 的文件名,而不是文件B的inode号码,文件B的inode的链接数不会因此发生变化。