首先使用stat命令是可以看到一个文件的详细信息的。
$ stat src/
File: ‘src/’
Size: 56 Blocks: 0 IO Block: 4096 directory
Device: fd02h/64770d Inode: 201581405 Links: 5
Access: (0775/drwxrwxr-x) Uid: ( 1000/ kiosk) Gid: ( 1000/ kiosk)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2018-05-01 16:56:04.478800731 +0800
Modify: 2018-03-21 17:29:53.562847541 +0800
Change: 2018-03-21 17:29:53.562847541 +0800
Birth: -
在linux系统中有stat,fstat,lstat三个函数,若给一个pathname,stat 函数返回一个与此命名文件有关的信息结构, fstat函数获得已在描述符fileds上打开的文件的有关信息。lstat函数类似于stat,但是当命名的文件是一个符号连接时,lstat返回该符号连接的有关信息,而不是由该符号连接引用的文件的信息。
通过上面的stat命令返回的信息,可以看到该文件是个目录文件,还可以看到权限,所有人等等信息。
access函数:
当用open函数打开一个文件时,内核以进程的有效用户 ID 和有效组 ID 为基础执行其存取许可权测试。
umask函数:
作用便是指出一个被初始创建的文件的权限是什么,其是屏蔽位是1,未被屏蔽的是将要设置成的权限位。
文件长度:
在stat函数中st_size参数便指明的是该文件的长度,此字段只对普通文件,目录和符号链接有意义。
其中对管道文件的意义是可以从管道中读取的字节数。而对于符号链接,其文件长度代表的是文件名的实际字节数,目录的长度是一个数,通常是16或512的整倍数。
和文件有关的三个时间分别是atime(文件最后存储的时间,对应操作read)、mtime(文件最后修改的时间,对应操作write)、ctime(i节点的最后修改状态,对应操作为chmod,chown)