Stat命令:在命令行上显示文件信息
在Linux服务器中使用命令行工作时,您会与许多不同的文件进行交互。这些文件中的每一个都有附加的属性。这些属性包含有关文件大小,权限,修改时间以及各种其他信息的详细信息。出于多种原因,您可能需要打印文件的属性。这就是stat命令用武之地了。
Stat命令的基本语法
stat命令使用简单结构的基本语法。您只需要提供文件名作为命令的参数即可。通用语法为:
stat [OPTION] ...filename...
现在,让我们看看实际命令在实际情况下是如何工作的。让我们用它来显示有关myfile.txt的信息。

上面是正在使用的stat命令的截图
传递一个文件名作为参数就可以了。然而,有几个选项可以扩大该实用程序的实用性。
Stat命令选项
现在您知道了如何获取任何文件的基本信息,现在该看看有价值的stat命令提供了哪些其他选项。该命令可用于获取特定信息而不是所有信息。它还可以用于获取有关文件系统而不是文件的详细信息。此外,可以将输出修改为更具可读性的格式,以便于在其他程序中使用。这里是您可以尝试使用的一些选项。
显示文件系统信息
您可以使用-f(–filesystem)选项提取有关文件系统而不是文件的信息。
$ stat -f / tmp
循符号链接/取消引用
如果在链接上运行stat命令,它将为您提供有关该符号链接的信息,而不是它所引用的文件。
stat myfilelink
使用-L(–dereference)选项将告诉stat跟随链接,并为您提供该链接引用的文件信息。
stat -L myfilelink
使用简洁的输出/删除标签
-t(-terse)输出是所有相同的信息,但是没有标签和格式。在需要解析特定信息的脚本中使用输出时,此功能很有用。
stat -t myfile.txt
格式化Stat命令输出
最后一个选项是-c(-format)。这使您可以使用格式序列仅显示所需的确切信息。
使用格式的语法是使用-c开关,后跟所需的序列,然后使用文件名(或文件系统名称)作为参数。
这是格式化输出以仅显示文件所有者名称的示例。
stat -c %U myfile.txt
格式化Stat命令的输出
您可以使用多种不同的格式来显示文件中的信息。以下是一些最常见的格式序列示例。
显示文件的索引号
stat -c %i myfile.txt
显示文件的文件类型
stat -c %F myfile.txt
带有符号链接的相同示例显示了不同之处:
stat -c %F myfilelink
显示文件系统类型
stat -f -c %T /vault
组合格式序列
您可以在单个命令中组合任意数量的格式序列,以获取所需的确切信息。在这里,我们使用一些不同的序列来获取所有者名称,所有者的组名称以及myfile.txt的权限。
stat -c "%U %G %A" myfile.txt
注意:如果在序列之间放置空格,则必须将其用引号引起来。
您甚至可以使用自定义分隔符。例如,假设您要转储由逗号分隔的相同信息。如果您想将此数据复制为电子表格(以逗号分隔(CSV)格式),这可能会很有用。
stat -c "%U,%G,%A" myfile.txt
另一个使用冒号的示例:
stat -c "%U:%G:%A" myfile.txt
有关有效格式序列的完整列表,请参见手册页(在资源部分中链接)或使用stat –help。
上面的示例应指导您更好地了解stat命令。有了几个命令行选项和格式,最好使用这些示例并将其应用于系统上的文件以获得更多动手知识。继续学习可能有助于您在实时操作中有效地获取确切的文件或文件系统详细信息。