为什么需要了解文件的属性呢?
文件详细的属性信息,可以帮助运维人员更清晰的操控数据,并且在系统或服务出现问题时,可以更精准的解决处理问题。
一、文件属性组成介绍
#查看文件属性信息
ll -i 文件
stat 文件
1.(67109443) ——文件属性索引节点-inode(index node)(唯一的)
主要用于定位文件数据存储到磁盘的什么位置,有点类似于人的身份证号码;
系统读取文件时首先通过文件名找到inode号码,然后才能读取到文件内容。
2.(-rw-r--r--.) ——文件属性类型权限
文件类型:定义所操作的文件是属于什么类型的文件(普通文件(-) 目录文件(d) 链接类型(|)等等)
文件权限:定义可以对文件进行哪些操作处理(读 写 执行)
3.(1) ——文件属性链接概念-硬链接(Linux系统特有的链接概念)
硬链接:类似于定义获取数据文件内容的入口(类似商场购物,会有多个门进出一样)
正常文件数据是存储在硬盘中的,可以拥有多少个相应入口调取硬盘中的数据。
4.(root) ——文件属性用户信息:
用户信息:可以有效管理数据的用户/可以是数据的创造者
用户组信息:当某个数据需要被多个用户管理时,可以创建一个用户组,将数据管理者划分到组中。
在Linux系统里,文件或程序,以及进程的存在必须要有用户或用户组进行管理,才有意义。
5.(158) ——文件属性存储信息-block
存储信息:表示数据信息所占用磁盘空间的大小,具体存储单位有Byte kB MB GB等。
1GB=1024MB=1024*1024KB=1024*1024*1024B
6.(Jun 7 2013)——文件属性时间信息-修改时间
时间信息:定义文件数据最后被用户配置修改的时间。
二、系统文件属性详述
1.文件类型概念说明(扩展名)
在Linux系统环境中文件类型不等于文件扩展名
windows系统是通过扩展名来区分不同文件类型,如果扩展名错误,或者没有扩展名,则会导致文件无法识别。
Linux系统不同于windows系统,Linux系统不会根据扩展名来区分文件类型,而是通过为文件设定属性的方式区分文件类型。但是Linux系统中也会包含各种带有扩展名的文件,但这些文件的扩展名并不代表文件类型,扩展名只是为了让用户更容易区分文件类型,更易读而已,并且即使出现扩展名错误,文件也是可以正常使用的。举个例子
我们创建一个文本文件,并往里面随意写点东西
接着更改这个文件的拓展名,改成png(图片拓展名),然后用file命令(用于获取文件类型信息)查看,结果发现,test.png文件的本质依旧是text文本文件
Linux系统下常见的文件扩展名及意义:
常见文件拓展名 | 意义 |
.rmp | CentOS/Redhat版本系统二进制软件程序包文件 |
.tar.gz/.zip | 压缩包文件(.tgz .tar .gz等也是压缩包文件) |
.sh/.py/.php/.html/.js | shell脚本文件,通过shell脚本语言开发的程序 |
.conf | 表示系统服务的配置文件 |
.log | 系统或服务程序的日志文件 |
文件类型分类说明:
在Linux系统中,一切皆文件。因此需要用特定的符号表示不同类型的文件。
文件类型符号 | 意义 |
- | regular file,表示普通文件,包含纯文本 二进制文件 数据文件等 |
d | directory,代表目录 |
l | link,代表符号链接或软链接文件,类似于windows系统快捷方式 |
c | character,代表字符设备文件,例如:串口设备 |
b | block,代表块设备文件,例如:硬盘 光驱 |
s | socket,代表套接字文件,进程之间进行通信是会用到 |
p | named pipe,表示管道文件,主要作用是控制服务进程读取或加载文件 |