Linux文件属性

在日常操作linux系统是,ls命令用的可能是最多的,但是你知道ls命令输出结果都携带了哪些信息吗?今天就来看看linux的文件属性. 在一台CentOS系统上执行:

 ls -lhi
total 40K
287060 -rw-------. 1 root root 1.1K May  6 22:30 anaconda-ks.cfg
262150 -rw-r--r--. 1 root root  22K May  6 22:29 install.log
262152 -rw-r--r--. 1 root root 5.8K May  6 22:28 install.log.syslog
265232  drwxr-xr-x 1 root root 4.0K Jul  4 13:16 test/

以上ls命令的输出结果,各列从左到右分别表示:

  • 是文件的索引节点号,相当于文件的身份证号,在系统中唯一,系统读取文件时,首先通过文件名找到inode,然后才能读取到文件内容
  • 文件类型以及权限,算上点一共十一个字符,第一个代表文件类型,’-‘是文件,’d’是目录,后就个是文件的权限,你能不能访问,修改删除它,点号和selinux相关的标识
  • 硬链接的数量,硬链接就是同一个文件不同的访问入口,相当于windows的快捷方式
  • 属主,文件所有者
  • 文件和目录所属的组
  • 文件大小
  • 七八九列是文件的时间 时间有修改时间modify(内容的改变),改变时间change(属性的改变)
  • 文件名或者目录名

第一列 索引号

存储设备被格式化为ext4文件系统后,一般生生成两部分:第一部分是inode,第二部分是block block是用来存储实际数据用的,如照片视频, inode就是用来存贮这些数据的属性信息的(也就是ls -i的结果),你所看到的所有信息在系统里面都是有一个空间存放的,要不然你不可能看见它,既然是存储文件属性信息,就要对应相应的文件,所以还包含指向文件实体的指针功能,但是inode里面不包含文件名。inode号相同的文件,互为硬链接文件,可以认为是一个文件的不同入口,每个文件被创建后只能占用一个inode.每个inode是有大小的,centos5系列inode的默认大小是128字节,而6系列默认大小是256字节,block大小一般1k2k4k集中,引导分区一般为1k,其他分区多为4k.

第二列 文件类型

在linux系统中,一切(目录,普通文件,设备文件等)皆为文件,文件类型包含有普通文件,目录,字符设备文件,符号链接文件,管道文件等等,下面分别说明

  • d(directroy)目录文件
  • -(regular file)普通文件
  • l(link)符号链接文件
  • b(block)块设备
  • c(character)字符设备文件
  • s(socket)socket文件
  • p(named pipe)管道文件

第三列 权限

  • r read可读权限,对应数字是4
  • w write可写权限,对应数字是2
  • x execute 可执行权限,对应数字是1

每一个文件有三组权限,如rwx|r-x|r–(754) 第一组权限是属主的权限,可读可写可执行 第二组是属组权限,属于改组的用户对文件可读可执行 第三组是其他用户权限,只可读

第四列 文件链接

硬链接

在linux系统中,多个文件名指向同一个inode,这种情况文件就称为硬链接,硬链接的文件就相当于文件的另外一个入口,硬链接的作用之一是使一个文件拥有多个有效的路径(多个入口),这样用户就可以建立硬链接到重要文件,防止误删源数据.

软连接

一个文件的软连接(ln -s创建)是指向这个文件的,并不是像硬链接那样直接对应block中的文件,类似于文件的快捷方式

第五列 属主

linux里面用户的角色是通过UID和GID识别的,UID标识一个系统用户账号,GID标识用户组,在linux系统中,一个UID标识一个系统用户账号(相当于身份证),用户系统账号名称如root,是给人看的,系统能够识别的仅仅是UID和GID这样的数字.

  • UID :user identify 用户Id,相对于身份证,在系统中唯一
  • GID:group identify 组id ,相当于家庭或者学校的ID

第七八九列 时间

默认是修改时间modify

第十列 文件名

本文总阅读量