用途:
stat命令用来查看文件信息
论述:
在Linux中,没有文件创建时间的概念。只有文件的访问时间、修改时间、状态改变时间。也就是说不能知道文件的创建时间。但如果文件创建后就没有修改过,修改时间=创建时间;如果文件创建后,状态就没有改变过,那么状态改变时间=创建时间;如果文件创建后,没有被读取过,那么访问时间=创建时间,这个基本不太可能。
与文件相关的几个时间:
1、访问时间,读一次这个文件的内容,这个时间就会更新。比如对这个文件使用more命令。ls、stat命令都不会修改文件的访问时间。
2、修改时间,对文件内容修改一次,这个时间就会更新。比如:vi后保存文件。ls -l列出的时间就是这个时间。
3、状态改变时间。通过chmod命令更改一次文件属性,这个时间就会更新。查看文件的详细的状态、准确的修改时间等,可以通过stat命令 文件名。
[root@uyhd000225 shelltest]# stat filesystemcheck.sh File: “filesystemcheck.sh” Size: 150 Blocks: 8 IO Block: 4096 一般文件 Device: 301h/769d Inode: 12256000 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2014-01-07 13:12:05.000000000 +0800 Modify: 2014-01-07 13:12:03.000000000 +0800 Change: 2014-01-07 13:12:03.0000
说明:Access访问时间。Modify修改时间。Change状态改变时间。可以stat *查看这个目录所有文件的状态
用法:
[root@pacteralinux testshell]# man stat STAT(1) User Commands STAT(1) NAME stat - display file or file system status SYNOPSIS stat [OPTION]... FILE... DESCRIPTION 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=FORMAT use the specified FORMAT instead of the default; output a newline after each use of FORMAT --printf=FORMAT like --format, but interpret backslash escapes, and do not output a mandatory trailing newline. If you want a newline, include \n in FORMAT. -t, --terse print the information in terse form --help display this help and exit --version output version information and exit The valid format sequences for files (without --file-system): %a Access rights in octal %A Access rights in human readable form %b Number of blocks allocated (see %B) %B The size in bytes of each block reported by %b %C SELinux security context string %d Device number in decimal %D Device number in hex %f Raw mode in hex %F File type %g Group ID of owner %G Group name of owner %h Number of hard links %i Inode number %n File name %N Quoted file name with dereference if symbolic link %o I/O block size %s Total size, in bytes %t Major device type in hex %T Minor device type in hex %u User ID of owner %U User name of owner %x Time of last access %X Time of last access as seconds since Epoch %y Time of last modification %Y Time of last modification as seconds since Epoch %z Time of last change %Z Time of last change as seconds since Epoch Valid format sequences for file systems: %a Free blocks available to non-superuser %b Total data blocks in file system %c Total file nodes in file system %d Free file nodes in file system %f Free blocks in file system %C SELinux security context string %i File System ID in hex %l Maximum length of filenames %n File name %s Block size (for faster transfers) %S Fundamental block size (for block counts) %t Type in hex %T Type in human readable form NOTE: your shell may have its own version of stat, which usually supersedes the version described here. Please refer to your shell’s documentation for details about the options it supports. AUTHOR Written by Michael Meskes. REPORTING BUGS Report stat bugs to bug-coreutils@gnu.org GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> Report stat translation bugs to <http://translationproject.org/team/> COPYRIGHT Copyright 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. SEE ALSO stat(2) The full documentation for stat is maintained as a Texinfo manual. If the info and stat programs are properly installed at your site, the command info coreutils 'stat invocation' should give you access to the complete manual. GNU coreutils 8.4 June 2012 STAT(1) (END)
解释:
stat(status) 功能说明:显示inode内容。 补充说明:stat以文字的格式来显示inode的内容。 root@bt:~# stat --help 用法:stat [选项]... 文件... 显示文件或文件系统的状态。 -L, --dereference跟随链接 -f, --file-system显示文件系统状态而非文件状态 -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硬链接数量 %iInode 编号 %n文件名 %N如果对象是一个符号链接,显示引用到的其它文件名 %oI/O 块大小 %s总计大小,以字节为单位 %t十六进制主设备类型 %T十六进制子设备类型 %u文件的属主ID %U文件的属主用户名 %x上次访问时间 %X从UNIX 元年起计的上次访问时间 %y上次修改时间 %Y从UNIX 元年起计的上次修改时间 %z上次更改时间 %Z从UNIX 元年起计的上次更改时间 有效的文件系统格式序列: %a非超级用户可用的剩余块数 %b文件系统的总数据块数 %c文件系统中文件节点总数 %d文件系统中空闲文件节点数 %f文件系统中空闲块数 %CSELinux 安全环境字符串 %i十六进制文件系统ID %I允许的文件名最大长度 %n文件名 %s块大小(用于快速传输) %S基本块大小(用于块计数) %t十六进制类型描述 %T可读性较好的类型描述
事例:
[root@pacteralinux testshell]# stat -f -c '%T' / ext2/ext3 [root@pacteralinux testshell]# stat -f -c %T / ext2/ext3 [root@pacteralinux testshell]# stat -f %T / stat: cannot read file system information for `%T': No such file or directory File: "/" ID: 1cbc925161e0f14 Namelen: 255 Type: ext2/ext3 Block size: 4096 Fundamental block size: 4096 Blocks: Total: 7488502 Free: 1611667 Available: 1231264 Inodes: Total: 1905008 Free: 1776613 [root@pacteralinux testshell]# stat -f -c %T / ext2/ext3 [root@pacteralinux testshell]# stat -fc %T / ext2/ext3 [root@pacteralinux testshell]# stat /var/log/messages File: `/var/log/messages' Size: 227 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 788229 Links: 1 Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2014-01-06 12:28:53.604164323 +0800 Modify: 2014-01-06 12:28:52.603169898 +0800 Change: 2014-01-06 12:28:52.603169898 +0800 [root@pacteralinux testshell]# stat /var/log/messages | tail -2 | awk '{print $2"+++++++"$3}' 2014-01-06+++++++12:28:52.603169898 2014-01-06+++++++12:28:52.603169898