安卓系统

Linux中的Stat命令

9 2 1 文件系统管理 文件系统常用命令 df、du、fsck、dumpe2fs

9 2 1 文件系统管理 文件系统常用命令 df、du、fsck、dumpe2fs

目录:

Anonim

stat 是一个命令行实用程序,用于显示有关给定文件或文件系统的详细信息。

本文介绍了如何使用 stat 命令。

使用 stat 命令

stat 命令的语法如下:

stat… FILE…

stat 接受一个或多个输入 FILE 名,并包括许多控制命令行为和输出的选项。

让我们看下面的例子:

stat file.txt

输出将如下所示:

File: file.txt Size: 4030 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 13633379 Links: 1 Access: (0644/-rw-r--r--) Uid: (1000/ linuxize) Gid: (1000/ linuxize) Access: 2019-11-06 09:52:17.991979701 +0100 Modify: 2019-11-06 09:52:17.971979713 +0100 Change: 2019-11-06 09:52:17.971979713 +0100 Birth: -

在不带任何选项的情况下调用时, stat 显示以下文件信息:

  • 文件-文件名大小-文件的大小(以字节为单位)块-文件占用的已分配块数IO块-每个块的以字节为单位文件类型-(例如常规文件,目录,符号链接…)设备-十六进制和十进制的设备编号Inode-索引节点编号。链接-硬链接数量。访问-数字和符号方法中的文件权限.Uid-用户ID和所有者名称.Gid-组所有者的ID和名称上下文-SELinux安全上下文访问-上次访问文件的时间-修改-上次修改文件的内容的时间-更改-上次更改文件的属性或内容的时间-出生-文件创建时间(Linux不支持)。

显示有关文件系统的信息

要获取有关给定文件所驻留的文件系统的信息,而不是有关文件本身的信息,请使用 -f ,( --file-system file --file-system )选项:

stat -f file.txt

命令的输出将如下所示:

File: "package.json" ID: 8eb53097b4494d20 Namelen: 255 Type: ext2/ext3 Block size: 4096 Fundamental block size: 4096 Blocks: Total: 61271111 Free: 25395668 Available: 22265851 Inodes: Total: 15630336 Free: 13979610

使用 -f 选项调用 stat ,它将显示以下信息:

  • File-文件名ID-十六进制文件系统ID Namelen-文件名的最大长度基础块大小-文件系统上每个块的大小
    • 总计-文件系统中的总块数空闲-文件系统中的自由块数可用-非root用户可用的空闲块数。
    索引节点:
    • Total-文件系统中的总索引节点数。Free-文件系统中的可用索引节点数。

取消引用(跟随)符号链接

默认情况下, stat 不遵循符号链接。 如果在符号链接上运行命令,则输出将包含有关符号链接的信息,而不是其指向的文件:

stat /etc/resolv.conf

File: /etc/resolv.conf ->../run/systemd/resolve/stub-resolv.conf Size: 39 Blocks: 0 IO Block: 4096 symbolic link Device: 801h/2049d Inode: 8126659 Links: 1 Access: (0777/lrwxrwxrwx) Uid: (0/ root) Gid: (0/ root) Access: 2019-11-06 21:12:26.875956073 +0100 Modify: 2018-07-24 11:11:48.128794519 +0200 Change: 2018-07-24 11:11:48.128794519 +0200 Birth: -

要取消引用(跟随)符号链接并显示该符号链接指向的文件的信息,请使用 -L ,(-- --dereference )选项:

stat -L /etc/resolv.conf

File: /etc/resolv.conf Size: 715 Blocks: 8 IO Block: 4096 regular file Device: 17h/23d Inode: 989 Links: 1 Access: (0644/-rw-r--r--) Uid: (101/systemd-resolve) Gid: (103/systemd-resolve) Access: 2019-11-06 20:35:25.603689619 +0100 Modify: 2019-11-06 20:35:25.555689733 +0100 Change: 2019-11-06 20:35:25.555689733 +0100 Birth: -

自定义输出

stat 命令有两个选项,可让您根据需要自定义输出: -c ,(-- --format="format" )和 --printf="format"

这两个选项的区别在于,当两个或多个文件用作操作符时,--format在每个操作数的输出之后自动添加换行符。 --printf 解释反斜杠转义。

--format --printf 可以使用许多文件和文件系统的格式指令。

例如,仅查看文件类型,可以使用:

stat --format="%F" /dev/null

character special file

您可以组合任意数量的格式指令,并可以选择在它们之间使用自定义分隔符。 分隔符可以是单个字符或字符串:

stat --format="%n, %F" /dev/null

/dev/null, character special file

要解释特殊字符,例如换行符或制表符,请使用 --printf 选项:

stat --printf='Name: %n\nPermissions: %a\n' /etc

打印新行:

Name: /etc Permissions: 755

stat 信息也可以以简洁的形式显示信息。 此格式对于其他实用程序的解析很有用。

使用 -t (-- --terse )选项调用命令,以简洁的形式输出输出:

stat -t /etc

/etc 12288 24 41ed 0 0 801 8126465 147 0 0 1573068933 1573068927 1573068927 0 4096

有关文件和文件系统的所有格式指令的完整列表,请在终端中输入 man stat stat --help

结论

stat 命令显示有关给定文件和文件系统的信息。

在Linux中,还有其他几个命令可以显示有关给定文件的信息,其中 ls 是最常用的命令,但仅显示 stat 命令提供的信息中的一部分。

统计终端