Linux系统之stat命令的基本使用
Linux系统之stat命令的基本使用
- 一、stat命令 介绍
- 二、stat命令帮助
- 2.1 查询帮助信息
- 2.2 stat命令的帮助解释
- 三、stat命令的基本使用
- 3.1 查询文件信息
- 3.2 查看文件系统状态
- 3.3 使用格式化输出
- 3.4 以简洁形式打印信息
- 四、注意事项

一、stat命令 介绍
stat 命令用于显示文件或文件系统状态的详细信息。它提供了比 ls -l 更加详细的输出,包括时间戳、权限、所有者等信息。
二、stat命令帮助
2.1 查询帮助信息
在Rocky Linux 9.4系统中,我们在命令行终端使用–help选项查询stat的命令帮助信息。
[root@RockyLinux-server001 ~]# stat --help
用法:stat [选项]... 文件...
显示文件或文件系统的状态。必选参数对长短选项同时适用。-L, --dereference 跟随链接-f, --file-system 显示文件系统状态而非文件状态--cached=MODE specify how to use cached attributes;useful on remote file systems. See MODE below-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 显示此帮助信息并退出--version 显示版本信息并退出The --cached MODE argument can be; always, never, or default.
`always` will use cached attributes if available, while
`never` will try to synchronize with the latest attributes, and
`default` will leave it up to the underlying file system.The valid format sequences for files (without --file-system):%a permission bits in octal (note '#' and '0' printf flags)%A permission bits and file type 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%m mount point%n file name%N quoted file name with dereference if symbolic link%o optimal I/O transfer size hint%s total size, in bytes%t major device type in hex, for character/block device special files%T minor device type in hex, for character/block device special files%u user ID of owner%U user name of owner%w time of file birth, human-readable; - if unknown%W time of file birth, seconds since Epoch; 0 if unknown%x time of last access, human-readable%X time of last access, seconds since Epoch%y time of last data modification, human-readable%Y time of last data modification, seconds since Epoch%z time of last status change, human-readable%Z time of last status change, seconds since EpochValid 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%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 file system type in hex%T file system type in human readable form--terse 和下列<格式>等效::%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %W %o %C
--terse --file-system 与下列<格式>等效:%n %i %l %t %s %S %b %f %a %c %d注意:您的shell 可能内置了自己的stat 程序版本,它会覆盖这里所提及的相应
版本。请查阅您的shell 文档获知它所支持的选项。
2.2 stat命令的帮助解释
stat命令用法
用法:stat [选项]... 文件...
显示文件或文件系统的状态。
- 通用选项
| 短选项 | 长选项 | 描述 |
|---|---|---|
| -L | –dereference | 跟随链接 |
| -f | –file-system | 显示文件系统状态而非文件状态 |
| –cached=MODE | 指定如何使用缓存属性;对远程文件系统有用。参见下面的 MODE 说明 | |
| -c | –format=FORMAT | 使用指定的 FORMAT 替代默认格式;每次使用 FORMAT 后输出一个换行符 |
| –printf=FORMAT | 类似于 --format,但解释反斜杠转义,并且不强制输出尾部换行符;如果需要换行符,请在 FORMAT 中包含 \n | |
| -t | –terse | 以简洁形式打印信息 |
| –help | 显示此帮助信息并退出 | |
| –version | 显示版本信息并退出 |
关于 --cached 的 MODE 参数:
-
always: 如果可用,则使用缓存属性; -
never: 尝试同步最新的属性; -
default: 由底层文件系统决定。 -
文件格式序列
| 序列 | 描述 |
|---|---|
| %a | 权限位,八进制表示(注意 ‘#’ 和 ‘0’ printf 标志) |
| %A | 权限位和文件类型,人类可读形式 |
| %b | 分配的块数(参见 %B) |
| %B | %b 报告的每个块的大小,以字节为单位 |
| %C | SELinux 安全上下文字符串 |
| %d | 设备号,十进制 |
| %D | 设备号,十六进制 |
| %f | 十六进制的原始模式 |
| %F | 文件类型 |
| %g | 所有者的组 ID |
| %G | 所有者的组名 |
| %h | 硬链接数 |
| %i | inode 编号 |
| %m | 挂载点 |
| %n | 文件名 |
| %N | 引用的文件名,如果是符号链接则去引用 |
| %o | 最佳 I/O 传输大小提示 |
| %s | 总大小,以字节为单位 |
| %t | 字符/块设备特殊文件的主要设备类型,十六进制 |
| %T | 字符/块设备特殊文件的次要设备类型,十六进制 |
| %u | 所有者的用户 ID |
| %U | 所有者的用户名 |
| %w | 文件创建时间,人类可读;未知时显示 - |
| %W | 文件创建时间,自纪元以来的秒数;未知时显示 0 |
| %x | 最后访问时间,人类可读 |
| %X | 最后访问时间,自纪元以来的秒数 |
| %y | 最后数据修改时间,人类可读 |
| %Y | 最后数据修改时间,自纪元以来的秒数 |
| %z | 最后状态改变时间,人类可读 |
| %Z | 最后状态改变时间,自纪元以来的秒数 |
- 文件系统格式序列
| 序列 | 描述 |
|---|---|
| %a | 对非超级用户可用的空闲块数 |
| %b | 文件系统中的总数据块数 |
| %c | 文件系统中的总文件节点数 |
| %d | 文件系统中的空闲文件节点数 |
| %f | 文件系统中的空闲块数 |
| %i | 文件系统的 ID,十六进制 |
| %l | 文件名的最大长度 |
| %n | 文件名 |
| %s | 块大小(用于快速传输) |
| %S | 基础块大小(用于块计数) |
| %t | 文件系统类型,十六进制 |
| %T | 文件系统类型,人类可读形式 |
注释:
--terse等效于以下格式:%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %W %o %C--terse --file-system等效于以下格式:%n %i %l %t %s %S %b %f %a %c %d
注意事项:
您的 shell 可能内置了自己的 stat 程序版本,它会覆盖这里所提及的相应版本。请查阅您的 shell 文档获知它所支持的选项。
三、stat命令的基本使用
3.1 查询文件信息
我们先使用ls命令查询测试文件的基本信息:
[root@RockyLinux-server001 ~]# ls -l aa01.txt
-rw-r--r--. 1 root root 0 12月 10 16:14 aa01.txt
使用stat命令查询测试文件的基本信息:
[root@RockyLinux-server001 ~]# stat aa01.txt文件:aa01.txt大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:201326725 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2024-12-10 16:14:42.188422475 +0800
最近更改:2024-12-10 16:14:42.188422475 +0800
最近改动:2024-12-10 16:14:42.188422475 +0800
创建时间:2024-12-10 16:14:42.188422475 +0800
3.2 查看文件系统状态
要查看文件系统的状态信息,我们可以使用 -f 选项:
[root@RockyLinux-server001 ~]# stat -f aa01.txt文件:"aa01.txt"ID:fd0000000000 文件名长度:255 类型:xfs
块大小:4096 基本块大小:4096块:总计:18333696 空闲:17516044 可用:17516044
Inodes: 总计:36700160 空闲:36642165
3.3 使用格式化输出
stat 支持使用 --format (-c) 或 --printf 来定制输出格式。这对于脚本编写非常有用,因为它允许你提取特定的信息。例如,只获取文件的修改时间:
[root@RockyLinux-server001 ~]# stat --format=%y aa01.txt
2024-12-10 16:14:42.188422475 +0800
[root@RockyLinux-server001 ~]# stat --format="Modify time: %y" aa01.txt
Modify time: 2024-12-10 16:14:42.188422475 +0800
3.4 以简洁形式打印信息
stat -t aa01.txt 命令以简洁格式输出了文件 aa01.txt 的基本信息,包括文件名、大小、设备号、用户和组ID、inode号、时间戳(访问、修改、状态改变及创建时间)、块大小以及SELinux安全上下文。
[root@RockyLinux-server001 ~]# stat -t aa01.txt
aa01.txt 0 0 81a4 0 0 fd00 201326725 1 0 0 1733818482 1733818482 1733818482 1733818482 4096 unconfined_u:object_r:admin_home_t:s0
四、注意事项
- 使用
stat命令时确保你有足够的权限访问目标文件或目录,否则可能无法获取完整信息。 stat的输出可以非常详细,使用-t或--terse选项可以获得更紧凑、适合脚本处理的输出格式。- 对于符号链接,使用
-L或--dereference选项可以让stat显示链接指向的目标文件的状态而非链接本身。 - 当你需要自定义输出格式时,利用
--format(-c) 或--printf选项可以精确控制显示哪些信息以及它们的排列方式。 - 查看文件系统状态而不是单个文件状态时,请使用
-f或--file-system选项。 - 注意你的 shell 可能有内置的
stat命令,这可能会覆盖系统提供的stat,查阅 shell 文档以了解其特性。 - 在多语言环境下运行
stat时,某些字段如时间戳的格式可能会根据当前 locale 设置而有所不同。
相关文章:
Linux系统之stat命令的基本使用
Linux系统之stat命令的基本使用 一、stat命令 介绍二、stat命令帮助2.1 查询帮助信息2.2 stat命令的帮助解释 三、stat命令的基本使用3.1 查询文件信息3.2 查看文件系统状态3.3 使用格式化输出3.4 以简洁形式打印信息 四、注意事项 一、stat命令 介绍 stat 命令用于显示文件或文…...
云手机+Facebook:让科技与娱乐完美结合
移动互联网时代,Facebook作为全球最大的社交媒体平台之一,早已成为企业、品牌和组织竞相角逐的营销阵地。而云手机的出现,则为Facebook营销注入了新的活力,其独特的优势让营销活动更加高效、精准且灵活。本文将深入探讨云手机在Fa…...
为什么要在PHY芯片和RJ45网口中间加网络变压器
在PHY芯片和RJ45网口之间加入网络变压器是出于以下几个重要的考虑: 1. 电气隔离:网络变压器提供了电气隔离功能,有效阻断了PHY芯片与RJ45之间直流分量的直接连接。这样可以防止可能的电源冲突,降低系统故障的风险,并保…...
LeetCode 19:删除链表的倒数第N 个结点
题目: 地址:https://leetcode.cn/problems/remove-nth-node-from-end-of-list/ 方法一: 方法二: 代码: package com.zy.leetcode.LeetCode_19;/*** Author: zy* Date: 2024-12-25-13:01* Description: 删除链表…...
RT-DETR融合[IJCV2024]LSKNet中的LSKBlock模块
RT-DETR使用教程: RT-DETR使用教程 RT-DETR改进汇总贴:RT-DETR更新汇总贴 《Large Selective Kernel Network for Remote Sensing Object Detection》 一、 模块介绍 论文链接:https://arxiv.org/pdf/2303.09030 代码链接:https:…...
C/C++ 数据结构与算法【树和森林】 树和森林 详细解析【日常学习,考研必备】带图+详细代码
一、树的存储结构 1)双亲表示法实现: 定义结构数组存放树的结点,每个结点含两个域: 数据域:存放结点本身信息。双亲域:指示本结点的双亲结点在数组中的位置。 特点:找双亲简单,找孩子难 C语…...
新浪微博大数据面试题及参考答案(数据开发和数据分析)
介绍一下你所掌握的计算机网络和操作系统相关知识 计算机网络:计算机网络是将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。我掌握了网络协议…...
OpenHarmony怎么修改DPI密度值?RK3566鸿蒙开发板演示
本文介绍在开源鸿蒙OpenHarmony系统下,修改DPI密度值的方法,触觉智能Purple Pi OH鸿蒙开发板演示,搭载了瑞芯微RK3566四核处理器,Laval鸿蒙社区推荐开发板,已适配全新开源鸿蒙OpenHarmony5.0 Release系统,适…...
SAP GUI Scripting - 如何判断组件是否存在
总体来说,SAP Scripting 与 BDC 类似,因为是屏幕录制,就可能碰到不同的情况,比如每个录入的数据不同,可能出现一个对话框,或者出现一个状态栏消息。这种任何有变化的情况,在 Scripting 中没有考…...
Go 计算Utf8字符串的长度 不要超过mysql字段的最大长度
背景: 我有一个mysql的字段,是utf8格式的,但有时候前端传的字符串会超长,为此我需要在后端接口,先判断是否超长,如果超长,则报错提示前端。 代码: // 计算utf8下,字符串…...
llamafactory报错:双卡4090GPU,训练qwen2.5:7B、14B时报错GPU显存不足(out of memory),轻松搞定~~~
实际问题场景: 使用llamafactory进行微调qwen2.5 7B和14B的大模型时,会出现out of memory的报错。尝试使用降低batch_size(原本是2,现在降到1)的方式,可以让qwen2.5:7B跑起来,但时不时会不稳定…...
全局webSocket 单个页面进行监听并移除单页面监听
之前全局封装的 webSocket 在某些特定的页面中使用会直接去调用 webSocket 的 onMessage 方法 已进入页面就会调,如果退出页面移除整个监听的话全局监听就会被移除 这是修改后的 全局封装 let token uni.getStorageSync(token) const HEARTBEAT_INTERVAL 1 *…...
JVM调优实践篇
理论篇 1多功能养鱼塘-JVM内存 大鱼塘O(可分配内存): JVM可以调度使用的总的内存数,这个数量受操作系统进程寻址范围、系统虚拟内存总数、系统物理内存总数、其他系统运行所占用的内存资源等因素的制约。 小池塘A&a…...
【JavaEE】Spring Web MVC
目录 一、Spring Web MVC简介 1.1 MVC简介1.2 Spring MVC1.3 RequestMapping注解1.3.1 使用1.3.2 RequestMapping的请求设置 1.3.2.1 方法11.3.2.2 方法2 二、Postman介绍 2.1 创建请求2.2 界面如下:2.3 传参介绍 一、Spring Web MVC简介 官方文档介绍ÿ…...
VSCode 插件开发实战(七):插件支持了哪些事件,以及如何利用和监听这些事件
前言 VSCode 作为现代开发者的首选编辑器之一,其核心优势在于其高度可扩展性。通过自定义插件,开发者可以根据自己的需求对编辑器进行功能扩展和优化。在这些插件开发过程中,事件处理和监听机制尤为重要,它们允许插件在特定事件发…...
指针详解之 多层嵌套的关系
1 例子之指向3个字符串的指针数组,易混淆! 1.1过程详解: char *str[3]{ "Hello,thisisasample!", "Hi,goodmorning.", "Helloworld" }; char s[80]; strcpy(s,str[0]); //也可写成strcpy(s,*st…...
Animated Drawings:让纸上的角色动起来
前言 今天介绍的这个工具非常的有意思:它可以让我们在纸上绘画的角色动起来。先一起来看看效果: 准备 首先,我们先准备一张绘画。可以在纸上进行绘制,也可以在电子设备上进行绘制。绘制内容不限,在这里为了方便演示&am…...
技术与教育的结合:高校听课评价系统的设计与实施
3.1系统可行性分析 需要使用大部分精力开发的高校听课评价系统为了充分降低开发风险,特意在开发之前进行可行性分析这个验证系统开发是否可行的步骤。本文就会从技术角度,经济角度,还有用户使用的程序的运行角度进行综合阐述。 3.1.1 技术可行…...
web移动端项目常用解决方案
移动端总会遇到一系列特定于移动设备的问题,分享下常见的移动端常见问题的处理方案。 1px边框问题 在高清屏幕下,1px的边框显示得比较粗。 .border-1px {position: relative; } .border-1px::after {position: absolute;content: ;width: 200%;height:…...
LabVIEW软件项目设计方案如何制定
制定LabVIEW软件项目设计方案需要综合考虑需求分析、架构设计、功能模块划分和时间预算等多个方面,确保项目开发过程高效、可控且最终满足目标要求。以下是一个详细的制定流程: 1. 需求分析 目标定义:明确项目的目标,例如数据采…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
