有时候想要查看linux 文件的详细的一些时间 ls -l 出来的结果可能不是你想要的了
stat 出来的结果可能才是你想要的
[[email protected] ~]# stat hosts File: "hosts" Size: 1204 Blocks: 8 IO Block: 4096 普通文件 Device: fd00h/64768d Inode: 1569988 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2013-10-25 12:07:04.174510054 +0800 Modify: 2013-05-22 18:27:06.100797625 +0800 Change: 2013-05-22 18:27:06.100797625 +0800
说明:Access访问时间。Modify修改时间。Change状态改变时间。可以stat *查看这个目录所有文件的状态
与文件相关的3个时间:
1、访问时间,读一次这个文件的内容,这个时间就会更新。比如对这个文件使用more命令。ls、stat命令都不会修改文件的访问时间。
2、修改时间,对文件内容修改一次,这个时间就会更新。比如:vi后保存文件。ls -l列出的时间就是这个时间。
3、状态改变时间。通过chmod命令更改一次文件属性,这个时间就会更新。查看文件的详细的状态、准确的修改时间等,可以通过stat命令文件名。
下面是 man stat 的详细信息解释
用法:stat [选项]… 文件…
Display file or file system status.
-L, --dereference follow links -Z, --context print the SELinux security context -f, --file-system display file system status instead of file status -c --format=格式 使用指定输出格式代替默认值,每用一次指定格式换一新行 --printf=格式 类似 --format,但是会解释反斜杠转义符,不使用换行作 输出结尾。如果您仍希望使用换行,可以在格式中 加入"\n" -t, --terse 使用简洁格式输出 --help 显示此帮助信息并退出 --version 显示版本信息并退出
有效的文件格式序列(不使用 –file-system):
%a 八进制权限 %A 用可读性较好的方式输出权限 %b 计算已分配块数(参见%B) %B 以字节为单位输出%b 所报告的每个块的大小 %C SELinux 安全环境字符串 %d 十进制设备编号 %D 十六进制设备编号 %f 十六进制原始模式 %F 文件类型 %g 文件的属组ID %G 文件的属组组名 %h 硬链接数量 %i Inode 编号 %n 文件名 %N 如果对象是一个符号链接,显示引用到的其它文件名 %o I/O 块大小 %s 总计大小,以字节为单位 %t 十六进制主设备类型 %T 十六进制子设备类型 %u 文件的属主ID %U 文件的属主用户名 %x 上次访问时间 %X 从UNIX 元年起计的上次访问时间 %y 上次修改时间 %Y 从UNIX 元年起计的上次修改时间 %z 上次更改时间 %Z 从UNIX 元年起计的上次更改时间
有效的文件系统格式序列:
%a 非超级用户可用的剩余块数 %b 文件系统的总数据块数 %c 文件系统中文件节点总数 %d 文件系统中空闲文件节点数 %f 文件系统中空闲块数 %C SELinux 安全环境字符串 %i 十六进制文件系统ID %I 允许的文件名最大长度 %n 文件名 %s 块大小(用于快速传输) %S 基本块大小(用于块计数) %t 十六进制类型描述 %T 可读性较好的类型描述