[命令] Linux 命令 stat 的使用 (显示文件的状态)

内容一:stat 命令的使用格式

1.1 一般的使用格式

# stat <file>

1.2 使用选项的格式

# stat <option> <parameter> <file>

内容二:stat 命令的常用选项

1) -c 或者 –format=FORMAT,只显示文件的时间
2) –printf=FORMAT,只显示文件的时间同时不换行打印

内容三:stat 命令的常用参数

1) %a, access rights in octal (note ‘#’ and ‘0’ printf flags)
2) %A, access rights in human readable form
3) %b, number of blocks allocated (see %B)
4) %B, the size in bytes of each block reported by %b
5) %C, SELinux security context string
6) %d, device number in decimal
7) %D, device number in hex
8) %f, raw mode in hex
9) %F, file type
10) %g, group ID of owner
11) %G, group name of owner
12) %h, number of hard links
13) %i, inode number
14) %m, mount point
15) %n, file name
16) %N, quoted file name with dereference if symbolic link
17) %o, optimal I/O transfer size hint
18) %s, total size, in bytes
19) %t, major device type in hex, for character/block device special files
20) %T, minor device type in hex, for character/block device special files
21) %u, user ID of owner
22) %U, user name of owner
23) %w, time of file birth, human-readable; – if unknown
24) %W, time of file birth, seconds since Epoch; 0 if unknown
25) %x, time of last access, human-readable
26) %X, time of last access, seconds since Epoch
27) %y, time of last data modification, human-readable
28) %Y, time of last data modification, seconds since Epoch
29) %z, time of last status change, human-readable
30) %Z, time of last status change, seconds since Epoch

内容四:stat 命令的使用案例

4.1 案例一:显示某个文件的时间

[mingyuzhu@liux ~]$  stat -c %y test.txt 
2025-03-31 17:26:11.399060089 +0800

或者:

[mingyuzhu@liux ~]$  stat --format=%y test.txt 
2025-03-31 17:26:11.399060089 +0800

(补充:这里以显示 test.txt 文件的时间为例)

4.2 案例二:显示某个文件的时间 (不换行)

[mingyuzhu@liux ~]$  stat --printf=%y test.txt 
2025-03-31 17:26:11.399060089 +0800[mingyuzhu@liux ~]$ 

(补充:这里以显示 test.txt 文件的时间为例)

4.3 案例三:同时显示某个文件的权限代码、所属主代码和所属组代码

# stat -c "%a %u %g" /boot/grub2/grub.cfg
600 0 0


补充:
1) 这里以显示 /boot/grub2/grub.cfg 文件的权限、所属主和所属组为例
2) 从输出结果可以看出此文件的权限代码是 600、所属主代码是 0、所属组代码是 0

4.4 案例四:同时显示某个文件的所属主、所属组和权限 (同时自定义这些参数的显示前缀)

# stat -c 'User=%U Group=%G Permissions=%a' /etc/passwd
User=root Group=root Permissions=644


补充:
1) 这里以显示 /boot/grub2/grub.cfg 文件的权限、所属主和所属组为例
2) 从输出结果可以看出此文件的所属主是 root、所属组是 root、权限代码是 644
3) 这里所属主的前缀是 User=、所属组的前缀是 Group=、权限代码的前缀是 Permissions=

[步骤] DELL BIOS 的升级 (Linux 版)

步骤一:在 DELL 官网下载对应的 BIOS 升级文件

(步骤略)

步骤二:核对下载的 BIOS 升级文件是否完整

# sha256sum BIOS_0HY8N_LN64_1.17.2.BIN


1) 这里以升级 BIOS_0HY8N_LN64_1.17.2.BIN 的 BIOS 升级文件为例
2) 将此步骤的输出结果和 DELL 官网上下载的升级软件进行比对

步骤三:给下载的 BIOS 升级文件添加执行权限

# chmod u+x BIOS_0HY8N_LN64_1.17.2.BIN; chown root:root BIOS_0HY8N_LN64_1.17.2.BIN

或者:

# chmod a+x BIOS_0HY8N_LN64_1.17.2.BIN

(补充:这里以给 BIOS_0HY8N_LN64_1.17.2.BIN 的 BIOS 升级文件添加执行权限为例)

步骤四:查看此 BIOS 升级文件的信息和要求

# ./BIOS_0HY8N_LN64_1.17.2.BIN --version

(补充:这里以查看 BIOS_0HY8N_LN64_1.17.2.BIN 的 BIOS 升级文件的信息和要求为例)

步骤五:确保 libstdc++ 已安装

# yum install libstdc++

步骤六:执行此 BIOS_0HY8N_LN64_1.17.2.BIN 升级文件

# ./BIOS_0HY8N_LN64_1.17.2.BIN

(补充:这里以执行 BIOS_0HY8N_LN64_1.17.2.BIN 的 BIOS 升级文件为例)

[步骤] Linux 最新软件升级的检查

正文:

内容一:通过 yum 日志查看

# cat /var/log/yum.log

内容二:通过 rpm 命令查看

# rpm -qa --last

或者:

# rpm --query --all --last

补充:查看曾经通过 dnf 命令或者 yum 命令升级的记录

# dnf history

或者:

# yum history

[命令] Linux 命令 basename (去除目录或文件的路径只显示此目录或文件)

案例一:去除某个目录或文件的路径只显示此目录或文件

# basename /root/test.txt
test.txt

(补充:这里以去除文件 /root/test.txt 的路径为例)

案例二:去除某 2 个目录或文件的路径只显示此 2 个目录或文件

2.1 去除某 2 个目录或文件的路径只显示此 2 个目录或文件 (最终结果只显示了第 1 个目录或文件)

# basename /root/test.txt /home/mingyuzhu/mingyuzhu.txt
test.txt

(补充:这里以去除文件 /root/test.txt 和文件 /home/mingyuzhu/mingyuzhu.txt 的路径为例)

2.2 去除某 2 个目录或文件的路径只显示此 2 个目录或文件

# basename -a /root/test.txt /home/mingyuzhu/mingyuzhu.txt
test.txt mingyuzhu.txt

(补充:这里以去除文件 /root/test.txt 和文件 /home/mingyuzhu/mingyuzhu.txt 的路径为例)

案例三:去除某个目录或文件的路径只显示此目录或文件,同时去除这个目录或文件的后缀

# basename -s .txt /root/test.txt
test

(补充:这里以去除文件 /root/test.txt 的路径同时去除后缀 .txt 为例)