L011系统文件属性知识进阶详解小节
这节课的内容相对来说较少,一上午加中午就听完了,现在总结一下,最后会有一个相关的面试题。
首先先附上一张图:
今天学习主要跟①和②有关,①为Inode 号 ②为文件类型以及权限(第一位为文件的类型第二到第十位为权限表示)
一、文件类型及权限
1 [root@moban ~]# ll 2 total 7748 3 -rw-r--r-- 1 root root 2 Mar 30 13:28 2.log 4 -rw-r--r-- 2 root root 4 Apr 17 23:36 3.log 5 -rw-r--r-- 2 root root 4 Apr 17 23:36 4.log 6 drwxrwxrwx. 2 root root 4096 Mar 22 14:11 963 7 -rw-r--r-- 1 root root 8 Mar 6 01:26 a.log 8 -rw-------. 1 root root 1108 Mar 17 14:42 anaconda-ks.cfg 9 lrwxrwxrwx 1 root root 34 Mar 7 05:53 apache -> /root/ti/application/apache2.2.17/ 10 drwxr-xr-x 3 root root 4096 Mar 7 05:43 application
就以第10行的application权限为例看下图
通过图片意义明了,每三个为一个权限位。
r read 可读
w write 可写
x Execute 执行权限
- 没有任何权限
二、硬链接
不同的文件名且具有同样的Inode为硬链接。
1 [root@moban ~]# ll -i 2 total 7748 3 194 -rw-r--r-- 1 root root 2 Mar 30 13:28 2.log 4 394 -rw-r--r-- 2 root root 4 Apr 17 23:36 3.log 5 394 -rw-r--r-- 2 root root 4 Apr 17 23:36 4.log 6 82 drwxrwxrwx. 2 root root 4096 Mar 22 14:11 963 7 392 -rw-r--r-- 1 root root 8 Mar 6 01:26 a.log 8 4528 -rw-------. 1 root root 1108 Mar 17 14:42 anaconda-ks.cfg 9 4608 lrwxrwxrwx 1 root root 34 Mar 7 05:53 apache -> /root/ti/application/apache2.2.17/ 10 4601 drwxr-xr-x 3 root root 4096 Mar 7 05:43 application
第4行和第5行为硬链接,因Inode都为394,也可以理解他们的入口(Inode)相同
关于硬链接的小节:
1 不同的文件名具有相同的inode,为硬链接。 2 删除硬链接文件或者删除源文件之一,文件实体并未删除。 3 只有删除了源文件和所有对应的硬链接文件,文件实体才会被删除。 4 当所有的硬链接文件及源文件被删除后,再存放新的数据会占用此文件的空间,或者磁盘fsck检查的时候,数据也会被回收。 5 硬链接文件是文件的又一个入口。 6 可以通过给文件设置硬链接文件,来防止重要文件被误删。 7 通过ln命令来创建硬链接,无需参数。 8 硬链接可以直接使用rm命令来删除。
三、软连接(又叫符号连接)
查看软连接的参数:readlink
[root@moban ~]# readlink apache /root/ti/application/apache2.2.17/
关于软连接的小节:
1 软连接类似windows里面的快捷方式,软连接里面存放的是源文件的路径,并且指向源文件。 2 删除源文件,软连接文件依然存在,但是无法访问指向源文件的内容。 3 通过ln -s 命令来创建软连接 4 软连接和源文件是不同类型的文件,也是不同的文件,inode号不同。 5 软连接的删除用rm -f
四、目录创建连接
1 对于目录,不可以创建硬链接,但是可以创建软连接。 2 对于目录软连接是生产场景运维中常用的技巧。(例如apache的那个考题)。 3 目录的硬链接不能跨越文件系统(从原理可以理解)。 4 每个目录下面都有一个硬链接“.”号和上级目录的连接“..” 5 在目录里创建一个目录,父目录的连接数会增加1(子目录中都有..来指向父目录),但是在父目录里创建文件,父目录的连接数不会增加。
企业面试题
简单描述一下linux文件的删除原理
答:
以下两个条件同时具备(也就是i_link和i_count都为0时才可删除)
1、控制文件删除:文件的硬连接数:创建一个硬链接i_link +1,减少一个硬链接i_link -1 i_link=0文件就被删除了
2、是否有进程占用这个文件,有一个进程占用这个文件i_conut+1,当i_count=0时,没有进程调用(i_count=0)。 文件就可以被删除了
总:当i_link=0并且i_count=0,文件才会真正的被删除