目录
1:代表该文件的inode编号。
2:第一个字母代表文件的类型,例如d就代表direcotry(目录),“-”代表普通文件。
剩余的9个字母,分别代表所属用户、所属用户组、其他用户对该文件读写的权限。
‘r’ 代表可读 ,‘w’ 代表可写 ,‘x’代表可执行,‘-’则表示不具备相应权限。
3. 这是什么,请移步下文观看。
4. 代表所属用户。
5. 代表所属用户组。
6. 代表文件的大小,以字节为单位。
7. 代表文件的mtime(Modified time)。
1.软连接
它是一个文件,有独属于自己inode。类似于Window中的快捷访问,给所链接的文件创建一个快速访问链接。
例如:
我在一个很深的路径下,创建一个可执行文件
但是我想在它所属的前几个路径下执行,每次都要输入一遍路径,很麻烦
这时软连接就可以体现它的作用
这时目录下就会有这个文件
我们运行它
软连接就行Linux下的快捷方式。
既然,软连接是一个独立的文件,有自己的inode编号,那么它的文件内容里装的是什么?
它的文件内容就是 软链接指向的文件的所在路径。
删除就是unlink 指定文件
2.硬链接
一个文件对应一个inode编号,但是一个inode编号可以对应的多个文件。这种方式叫做硬链接。单纯在Linux指定的目录下,给指定的文件新增文件名和inode编号的映射关系。
建立硬链接
诶?大家有没有发现test.txt所属用户前面的数字,在建立了硬链接之后,数字加了1,这是因为这个数字就是表示该文件的硬链接数。
这个硬链接数是什么?这好像智能指针中的引用计数,没错这就是对该inode编号的引用计数。标识有几个文件指向了该文件。
问题:
为什么新创建的目录的硬链接数是2,而新创建的文件硬链接数是1呢?
为什么是1呢?因为普通文件的文件名本事就和自己的inode编号具有映射关系。
为什么是2呢?我们进入这个目录。
嗯?这个‘.’ ".."怎么会有inode编号,证明他们也是文件。
返回Goo的上一层目录,查看Goo的inode。
这个Goo目录下的 ‘.’ 的inode编号和Goo的inode编号一模一样,证明这个‘.’ 是Goo的硬连接。
我们经常运行当前目录下的exe时,总是要 "./xxx.exe",这个‘.’就是当前目录。
".."呢?
".."的inode编号是790848,我们当前在Goo目录下,我们返回上上一层的目录去查看Goo目录的上一层目录(Go)的inode编号。
我们会发现Go的inode编号是790848,所以 ".."就是当前目录的上一层目录的硬链接。
返回上一层目录,则为"cd .."。
画图会理解更深:
感谢观看,我们下篇再见。