[Ding@VM-4-6-centos ~]$ ls -l
total 168
drwxrwxr-x 3 Ding Ding 4096 Jul 21 10:25 dir
drwxrwxr-x 3 Ding Ding 4096 Jul 19 19:50 excise
-rw-rw-r-- 1 Ding Ding 148906 Jul 13 15:56 file.txt
drwxrwxr-x 22 Ding Ding 4096 Nov 1 14:57 my
drwxrwxr-x 2 Ding Ding 4096 Jul 15 16:36 project
-rw-rw-r-- 1 Ding Ding 77 Jul 14 17:31 world.c
每行包含7列:
其实这个信息除了通过这种方式来读取,还有一个stat命令能够看到更多信息
[Ding@VM-4-6-centos ~]$ stat world.c
File: ‘world.c’
Size: 77 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 655769 Links: 1
Access: (0664/-rw-rw-r–) Uid: ( 1001/ Ding) Gid: ( 1001/ Ding)
Access: 2022-07-20 10:47:00.493716456 +0800
Modify: 2022-07-14 17:31:51.882251084 +0800
Change: 2022-07-14 18:07:49.021094627 +0800
Birth: -
下面解释一下文件的三个时间:
为了能解释清楚inode我们先简单了解一下文件系统

磁盘是典型的块设备,硬盘分区被划分为一个个的block。一个block的大小是由格式化的时候确定的,并且不可以更改。
找到文件:
inode编号—>分区特定的Block group —> inode—> 属性—> 内容
然而inode编号来自目录结构
[Ding@VM-4-6-centos my]$ ls -i 22111
789870 abc
总结:
文件名:inode编号的映射关系,互为Key值
进入目录:需要x(执行权限)
创建文件:需要w(写权限)
显示文件名与属性:需要r(读权限)
通过上面知识储备我们知道,真正找到磁盘上文件的并不是文件名,而是inode。 其实在linux中可以让多个文件名对应于同一个inode。
[Ding@VM-4-6-centos 22111]$ touch abc
[Ding@VM-4-6-centos 22111]$ ln abc def
[Ding@VM-4-6-centos 22111]$ ll -i
total 0
789870 -rw-rw-r-- 2 Ding Ding 0 Nov 1 15:22 abc
789870 -rw-rw-r-- 2 Ding Ding 0 Nov 1 15:22 def

有什么用娜?我们可以知道一个目录下有多少个文件

通过上面我们知道一个空目录下的硬链接数是2,因为还有2个(.)它也是一个文件,指当前目录(即自己目录名);(…)它也是一个文件指上一级目录(即自己目录内部)

[Ding@VM-4-6-centos ~]$ ln -s ./my/22111/exe exe
作用:
看下图:

原本很长的路径,有软链接就可以直接运行了。
总结: