Linux 文件和目录及权限,软硬链接
1.文件属性概述
Linux里一起皆文件
Linux系统中的文件或者目录的属性,主要包括:索引节点(inode),文件类型,权限属性,链接数,所归属的用户和用户组,最近修改时间,文件大小等内容:
[root@node1 dir4]# ls -lhi total 16K 523302 -rw-r--r-- 1 root root 292 Jan 14 02:58 1.txt
第一列:inode索引节点编号,系统的读取文件时首先通过文件名找到inode,然后才能读取到文件内容。
第二列:文件类型及权限(共10个字符,第一个字符为类型,后9个字符为文件权限)
第三列:硬链接的数量
第四列:文件或目录所属用户
linux里面文件和程序的存在必须要有用户和组满足相应的存在需求
第五列:文件或目录所属的组
第六列:文件或目录大小
第七八九列:文件最后修改时间,月/日/时
第十列:文件或目录名
备注:文件名不算文件的属性
2.索引节点inode
2.1 inode概述
硬盘要分区,然后格式化,创建文件系统
Inode,中文的意思就是索引节点,在每个linux存储设备或存储设备的分区被格式化为ext4文件系统后,一般都有两部分:第一部分是Inode,第二部分是Block
Block是用来存储实际数据用的,例如:照片,视频等普通文件数据。
而inode就是用来存储这些数据属性信息的(也就是ls -l的结果),inode包含的属性信息包括文件大小,属主,属组,读写权限,文件类型,修改时间,还包含指向文件实体的指针的功能(inode节点--block的对应关系)等,但inode唯独不包含文件名。
indoe是有大小的,Centos 5 是128字节。Centos 6 是256字节
磁盘空间是否满了,是由两项参数决定的:
第一个是inode是否满了,第二个block是否满了,任何一项满了都不能存放文件了。
(no space on device left)
2.2 有关inode的小结:
1.磁盘被分区格式化为ext4文件系统后会生成一定数量的inode和block
2.inode索引节点,作用是存放文件的属性信息以及作为文件的索引(指向文件的实体)
3.ext3/ext4文件系统的block存放的是文件的实际内容。
4.inode是磁盘上的一块存储空间,C6非启动分区inode默认大小256字节,C5是128字节。
5.inode是一串数字,不同的文件对应的inode在文件系统中是唯一的。
6.inode节点号相同的文件,互为硬链接文件,可视为同一个文件
7.一个文件被创建后至少要占用一个inode和一个block
8.ext3/ext4文件系统下,正常情况一个文件占用且只能占用一个inode的
9.block是用来存储实际数据的,它的大小一般有1k,2k,4k,其中引导分区等为1k,其他为4k
10.如果一个文件很大,可能占多个block,如果文件很少,至少占一个,剩余空间浪费了。
11.inode大小和总量查看
查看文件系统inode大小
dumpe2fs /dev/sda1 | egrep -i "block count|inode count"
查看文件系统inode总量已经余量
df -i
12.查看文件的inode
ls -i
3 有关block的知识小结
1.磁盘读取数据是按block为单位读取的。
2.一个文件可能占用多个block。每读取一个block就会产生一次磁盘I/O消耗
3.如果要提升磁盘IO性能,那么就要尽可能一次性读取数据尽量的多。
4.一个block只能存放一个文件的内容,无论内容有多小。如果block 4k,那么1K的文件,剩余3K就浪费了
5.Block并非越大越好,。Block太大对于小文件存放就会浪费磁盘空间,例如:1000k的文件,block为4k,占用250个block,block为1k,占用1000个block,消耗io分别为250次和1000次
6.大文件(大于16k)一般设置block大一点,小文件(小于1k)一般设置block小一点
7.block太大例如4k,文件都是0.1k,大量浪费空间,但是访问性能高。
8.block太小例如1k,文件都是1000k,消耗磁盘IO
9.block的设置也是格式化分区的时候,mkfs.ext4 -b 2048 -I 256 /dev/sdb
10.企业里文件较大时(一般会大于4K),block设置大一些会提升磁盘的访问效率
11.ext3/ext4文件系统一般设置为4K
4.总的小结:
1.磁盘分区格式化文件系统后,会分为inode和block两部分内容
2.inode存放文件的属性以及指向文件实体的指针,文件名不在inode里,一般在上级目录的bloick中
3.访问文件,通过文件名-->inode-->blocks
4.inode一般情况下默认大小256字节,block大小1,2,4K,默认时4K,注意,引导分区除外
5.通过df -i 查看inode的数量及视通情况,dumpe2fs /dev/sda3查看inode及block的大小及数量。
6.一个文件至少要占用一个inode及一个block,多个文件可以占用同一个inode(硬链接),相同文件。
7.一个block只能被一个文件使用,如果文件很小block很大,甚于空间就会很浪费。
8.block不是越大越好,要根据业务的文件大小进行选择,一般是4K
9.可以在格式化的时候改变inode和block的大小
5.linux中的文件类型
在linux中,后缀名大多情况下,没有实际意义。
linux系统中,可以说一切设备(包括目录,普通文件)皆为文件
- 普通文件
d 目录
c 字符设备文件
b 块文件
l 符号链接文件,
p 管道文件
s socket文件
6.文件权限
-rw-r--r-- 1 root root 292 Jan 14 02:58 1.txt
drwxr-xr-x 2 root root 4096 Jan 14 02:56 dir1
第一列有10个字符,第一个是文件类型,其余9个字符是权限分3组:分别是属主,属组,其他用户的权限
r 读 4
w 写 2
x 执行 1
7.链接
硬链接,软连接,符号链接
直接执行ln命令创建的链接是硬链接
使用ln -s 创建的链接则是软连接,前面字符类型位l的是软连接
硬链接:ln 源文件 目标文件
软链接:ln -s 源文件 目标文件(目标文件不能事先存在)
硬链接是指通过索引节点(inode来进行链接),建立硬链接可以防止文件误删
7.1 硬链接知识小结
硬链接的创建: ln 源文件 目标文件
1.具有相同inode节点号的多个文件是互为硬链接文件。
2.删除硬链接文件或者删除源文件任意之一,文件实体并未删除
3.只有删除了源文件及所有对应的硬链接文件,文件实体才会被删除
4.当所有的硬链接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,或者磁盘fsck检查的时候,删除的数据也会被系统回收
5.硬链接文件就是文件的另一个入口
6.通过给文件设置硬链接,可以有效防止误删。
7.通过执行命令“ln 源文件 硬链接文件”,即可完成创建硬链接
8.硬链接文件是普通文件,可以用rm命令删除。
9.对于静态文件(没有进程正在调用的文件)来讲,对应硬链接数位0,文件就被删除。i_link的查看方法(ls -l 结果第三列就是)
10.无法为目录创建硬链接
7.2 软连接知识小结
软连接创建:ln -s 源文件 软连接文件。 (目标不能已存在)
1.软链接类似windows的快捷方式,(可以通过readlink查看其指向)
2.软链接类似一个文本文件,里面存放的是源文件的路径,指向源文件实体。
3.删除源文件,软链接文件依然存在,但是无法访问指向的源文件路径和的内容了。
4.失效的时候一般是白字红底闪烁提示
5.执行命令'ln -s 源文件 软链接文件' ,即可完成创建软链接(目标文件不存在)
6.软链接和源文件是不同类型的文件,也是不同的文件,inode号也不相同
7.软链接的类型字符是l,删除软链接文件可以用rm命令
浙公网安备 33010602011771号