-f 显示文件所在文件系统的信息
-L 显示符号链接
-t 简洁模式,只显示摘要信息
在看之前,我们先ll一下,在里面找个文件,我选择了之前建好的tet.c文件
我们可以看到-L显示了很多信息,包括size,Block,以及文件的三个时间(atime,ctime,mtime关于这三个时间在我的另一篇博客中有讲到点击打开链接),而-f命令出现了一个id及其他信息,-t就显得简洁很多,但是通过观察我们可以看到他包含了-f,-L中的一些信息。
结构体stat
Linux文件系统以块为单位存储信息,为了找到某一个文件所在的存储空间的位置用一个数据结构来对每个文件进行索引,而stat显示的就是该结构体信息,下面我们可以来看下这个结构体。
struct stat {
mode_t st_mode; //文件对应的模式,文件,目录等
ino_t st_ino; //inode节点号
dev_t st_dev; //设备号码
dev_t st_rdev; //特殊设备号码
nlink_t st_nlink; //文件的连接数
uid_t st_uid; //文件所有者
gid_t st_gid; //文件所有者对应的组
off_t st_size; //普通文件,对应的文件字节数
time_t st_atime; //文件最后被访问的时间
time_t st_mtime; //文件内容最后被修改的时间
time_t st_ctime; //文件状态改变时间
blksize_t st_blksize; //文件内容对应的块大小
blkcnt_t st_blocks; //伟建内容对应的块数量
};
stat结构体中的st_mode 则定义了下列数种情况: S_IFLNK 0120000 符号连接 S_IFREG 0100000 一般文件 S_IFBLK 0060000 区块装置 S_IFDIR 0040000 目录 S_IFIFO 0010000 先进先出 S_ISUID 04000 文件的拥有者在执行中的id位 S_ISGID 02000 文件的所属组在执行中的id位 S_ISVTX 01000 文件的sticky位 S_IRUSR(S_IREAD) 00400 文件所有者具可读取权限 S_IWUSR(S_IWRITE)00200 文件所有者具可写入权限 S_IXUSR(S_IEXEC) 00100 文件所有者具可执行权限 S_IRGRP 00040 用户组具可读取权限 S_IWGRP 00020 用户组具可写入权限 S_IXGRP 00010 用户组具可执行权限 S_IROTH 00004 其他用户具可读取权限 S_IWOTH 00002 其他用户具可写入权限 S_IXOTH 00001 其他用户具可执行权限 为了方便理解,我们在说一下Linux中的三类人:拥有者(u),所属组(g),其他人(o).
Linux文件的三种权限:只读(r),只写(w),可执行(x),无权限(-)