Linux磁盘空间

Linux磁盘空间

我环顾四周,发现您可以使用 找到您的磁盘空间df -hT。所以我确实用它来获取磁盘空间(总共)以及剩余的空间。但问题是,我想知道是否还有其他方法可以获取这些信息?我在这里复制的代码将使用 awk 给出以 GB 为单位的总磁盘空间(我在最后添加了 B),如您所见,也使用 awk 剪切它。

这对你们中的一些人来说可能太混乱了(我还在学习 bash),所以如果你有任何建议,请随时给我。请记住,我正在寻找适用于每台服务器/计算机的选项,而无需使用 apt-get 下载软件。

df -hT /home | awk '{print $3}' | awk 'FNR == 2 {print $1 "\B"}'
awk: cmd. line:1: warning: escape sequence `\B' treated as plain `B'
912GB

也不知道如何摆脱 awk 消息。这可能看起来有点奇怪,但我必须从某个地方开始!

答案1

删除反斜杠对我有用:

df -hT /home | awk '{print $3}' | awk 'FNR == 2 {print $1 "B"}'

并且可以简化为

df -hT /home | awk 'FNR == 2 {print $3 "B"}'

答案2

为了回答有关获取信息的其他方式的问题, coreutilsstat能够statfs使用 option 查询文件系统信息(底层系统调用是 )-f。这可以提供比普通的更细粒度的信息df。例如(有关格式说明符的完整列表,请参阅 stat 联机帮助页):

$ stat -f /tmp --printf='{"block-size": %S, "total-blocks": %b, "free-blocks-users": %a, "free-blocks-root": %f}\n'
{"block-size": 4096, "total-blocks": 7559140, "free-blocks-users": 1693162, "free-blocks-root": 2077148}

一个可能更相关的示例,这将以块为单位打印文件系统大小:

$ stat -f /tmp --printf '%b\n'
7559140

或者,要计算字节,请乘以块大小(此处使用 GNU dc 进行数值计算):

$ stat -f /tmp --printf '%S %b *p' | dc
30962237440

或者,用两个小数位计算以 GB 为单位的大小并附加字符串“GB”:

$ stat -f /tmp --printf '%S %b * 2k 1024 dd**/n [GB]p' | dc
28.83GB

根据您想要用于此任务的编程语言,statfs可能可以使用直接包装器。

相关内容