linux命令总结之state命令

ls 命令及其许多参数提供了一些非常有用的文件信息。另一个不太为人所熟知的命令 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

原文链接:https://www.cnblogs.com/ginvip/p/6357565.html

上一篇:JavaScript-49:for循环


下一篇:49 JS内置对象——String 对象