这个 Linux 命令使用了 df
、awk
和一些正则表达式来提取特定挂载点的磁盘使用情况。我们逐步解释这个命令:
shdf -h | awk -F' ' '$NF~/^\/opt$/{print $(NF-1)}'
分解命令
-
df -h
:df
(disk free) 用于显示文件系统的磁盘使用情况。-h
(human-readable) 选项将输出格式化为易于阅读的格式(例如,显示为 1K、234M、2G)。
-
|
(pipe):- 管道符号将
df -h
的输出传递给下一个命令awk
进行处理。
- 管道符号将
-
awk -F' '
:awk
是一个强大的文本处理工具。-F' '
选项设置字段分隔符为一个空格。这意味着awk
会把每行文本按空格分割成多个字段。
-
$NF~/^\/opt$/
:$NF
代表当前行的最后一个字段。~/^\/opt$/
是一个正则表达式,匹配内容为/opt
的字段。- 这部分代码的意思是:如果当前行的最后一个字段完全匹配
/opt
,那么执行大括号{}
中的命令。
-
{print $(NF-1)}
:$(NF-1)
代表当前行倒数第二个字段。print $(NF-1)
的意思是打印当前行倒数第二个字段的内容。
总结
这个命令组合的作用是:
- 使用
df -h
命令获取所有挂载点的磁盘使用情况。 - 使用
awk
过滤出挂载点是/opt
的那一行。 - 打印出
/opt
挂载点的已用空间百分比(即倒数第二个字段)。
示例输出
假设 df -h
的部分输出如下:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 10G 10G 50% /
/dev/sda2 50G 20G 30G 40% /opt
这个命令会输出:
40%
表示 /opt
挂载点的已用空间百分比。
chmod 550 c