ls 命令及其许多参数提供了一些非常有用的文件信息。另一个不太为人所熟知的命令 stat 提供了一些更为有用的信息。

 [root@Gin scripts]# man stat
STAT() User Commands STAT() NAME
stat - display file or file system status SYNOPSIS
stat [OPTION]... FILE... DESCRIPTION
Display file or file system status. -L, --dereference
follow links :
STAT() User Commands STAT() 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 super-
sedes the version described here. Please refer to your shell’s documenta-
tion 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 © Free Software Foundation, Inc. License GPLv3+: GNU GPL
version 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() 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 October STAT()

man stat

下面演示了stat 不带参数显示的信息:

[root@Gin scripts]# stat date.txt
File: `date.txt'
Size: 40 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 261790 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-01-29 10:49:25.119790781 +0800
Modify: 2017-01-29 10:49:11.961790098 +0800
Change: 2017-01-29 10:49:11.961790098 +0800

注意使用该命令获得的信息:除了通常的文件大小(也可以使用 ls -l 命令获得)以外,您还获得了该文件占用的块数。通常的 Linux 块大小为 512 字节,因此一个大小为 93,300,148 字节的文件将占用 (93300148/512=) 182226.85 个块。由于块都是完整占用,因此该文件使用了一些整数个数的块。无需猜测就可以获得确切的块数。

  您还可以从以上输出中获得文件所有权的 GID 和 UID,以及权限的八进制表示形式 (6751)。如果要将文件恢复到它现在具有的相同权限,可以使用 chmod 6751 oracle,而不是显式拼写这些权限。

  以上输出最有用的部分是文件访问时间戳信息。该输出显示,该文件被访问的时间是 2006-08-04 04:30:52(显示在“Access:”的旁边),即 2006 年 8 月 4 日上午 4:30:52。这是某个人开始使用数据库的时间。该文件的修改时间是 2005-11-02 11:49:47(显示在“Modify:”的旁边)。最后,“Change:”旁边的时间戳显示文件状态更改的时间。

  stat 命令的修改符 -f 显示了有关文件系统(而非文件)的信息:

[root@Gin scripts]# stat -f date.txt
File: "date.txt"
ID: ff0d2532e41897c0 Namelen: 255 Type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 1851748 Free: 1286127 Available: 1190396
Inodes: Total: 479552 Free: 409340

另一个选项 -t 显示了完全相同的信息,只不过是在一行中显示的:

[root@Gin scripts]# stat -t date.txt
date.txt 40 8 81a4 0 0 803 261790 1 0 0 1485658165 1485658151 1485658151 4096

这对 shell 脚本非常有用,在 shell 脚本中可以使用一个简单的 cut 命令获得值以进行进一步处理。

应用案例:

如何取得stat /poe命令后文件的权限对应的数字内容,如-rw-r--r--为644,要求使用命令取得644或0644这样的数字。

[root@Gin scripts]# stat date.txt
File: `date.txt'
Size: 40 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 261790 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-01-29 10:49:25.119790781 +0800
Modify: 2017-01-29 10:49:11.961790098 +0800
Change: 2017-01-29 10:49:11.961790098 +0800
[root@Gin scripts]# stat -c %a date.txt
644

最新文章

  1. tomcat设置虚拟目录开启文件下载在服务
  2. 基础算法之插入排序Insertion Sort
  3. 【Effective Java】4、覆盖equals时请遵守通用约定
  4. SQL Server 2008 R2——VC++ ADO 操作 参数化查询
  5. HDU 5289 Assignment
  6. 【Codeforces Round#279 Div.2】B. Queue
  7. asp.net中常用的几种身份验证方式
  8. curl获取http请求的状态码
  9. 检测.net framework 版本
  10. NodeJS初学者实战之旅(I) —— 介绍、目录
  11. JCombox
  12. mysql 手册关于修改列字符编码的一个bug
  13. mysql 查看索引使用情况
  14. C#中DateTime的缺陷与代替品DateTimeOffset
  15. linux文件权限总结(创建root不可以删除文件、只可追加的日志文件等)
  16. 【python 字符串】 字符串的相关方法(二)
  17. 415 DOM 查找列表框、下拉菜单控件、对表格元素/表单控件进行增删改操作、创建元素并且复制节点与删除、 对表格操作、通用性和标准的事件监听方法(点击后弹窗效果以及去掉效果)
  18. Tigase8.0 源代码分析:一、启动篇
  19. malloc() 和 calloc()有啥区别
  20. ReactNative用指定的真机/模拟器运行项目

热门文章

  1. Scrum立会报告+燃尽图(十二月六日总第三十七次):程序功能逻辑优化
  2. 场景调研 persona
  3. 第二阶段Sprint冲刺会议8
  4. 第二阶段Sprint冲刺会议3
  5. 假如 GFW 遇上 ML
  6. Leetcode题库——15.三数之和
  7. 【CS231N】1、图像分类
  8. C++ 游戏之点点水果
  9. vue 组件 子向父亲通信用自定义方法用事件监听
  10. document.execCommand &amp; contenteditable