怎么在linux里输命令,如何在Linux中使用stat命令

在Linux系统中,stat是一个命令使用程序,用于显示给定文件或文件系统的详细信息。

本教程主要通过示例讲解如何在Linux系统中使用stat命令及常用的一些选项。

使用stat命令

使用stat命令前,我们介绍下其语法,stat命令的语法格式如下:

stat [OPTION]... FILE...

stat命令可以接受一个或多个输入文件名,并包含许多控制命令行为和输出的选项。

看下面的例子:

stat file.txt

输出内容类似如下:

File: file.txt

Size: 4030 Blocks: 8 IO Block: 4096 regular file

Device: 801h/2049dInode: 13633379 Links: 1

Access: (0644/-rw-r--r--) Uid: ( 1000/ linux265) Gid: ( 1000/ linux265)

Access: 2020-01-06 09:52:17.991979701 +0100

Modify: 2020-01-06 09:52:17.971979713 +0100

Change: 2020-01-06 09:52:17.971979713 +0100

Birth: -

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

File - 文件名称。

Size - 文件的大小(以字节为单位)。

Blocks - 文件占用的已分配块数。

IO Block - 每个块的大小(以字节为单位)。

File type - (例如常规文件,目录,符号链接…)

Device - 设备编号(十六进制和十进制)。

Inode - 索引节点编号。

Links - 硬连接数。

Access - 数字和符号方法中的文件权限。

Uid - 所有者的用户ID和名称。

Gid - 群组ID和所有者名称。

Context - SELinux安全上下文。

Access - 上次访问文件的时间。

Modify - 上次修改文件内容的时间。

Change - 上次更改文件属性或内容的时间。

Birth - 文件创建时间(Linux不支持)。

显示有关文件系统的信息

要获取有关给定文件所在文件系统的信息,而不是有关文件本身的信息,请使用-f,(--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

当 stat 命令使用 -f 选项时, 它显示如下信息:

File - 文件名。

ID - 十六进制文件系统ID。

Namelen - 文件名称最大的长度。

Fundamental block size - 文件系统上每个块大小。

Blocks:

Total - 文件系统中的总块数。

Free - 文件系统中可用的块数。

Available - 非root用户可用的可用块数。

Inodes:

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/2049dInode: 8126659 Links: 1

Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2020-01-06 21:12:26.875956073 +0100

Modify: 2020-01-04 11:11:48.128794519 +0200

Change: 2020-01-04 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/23dInode: 989 Links: 1

Access: (0644/-rw-r--r--) Uid: ( 101/systemd-resolve) Gid: ( 103/systemd-resolve)

Access: 2020-01-06 20:35:25.603689619 +0100

Modify: 2020-01-06 20:35:25.555689733 +0100

Change: 2020-01-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

\n 输出新的一行:

输出:

Name: /etc

Permissions: 755

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

使用-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。

写在最后

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

如果您有任何疑问或反馈,请随时发表评论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值