我正在尝试输出文件系统上的可用磁盘空间量/example。
/example
如果我运行该命令df -k /example,则可以通过以人为本并实际查看它来获得有关可用磁盘空间(以kb为单位)的良好信息。
df -k /example
我需要获取这些数据,并在我的shell脚本中的其他地方使用它。我最初考虑使用,cut但后来我的脚本无法移植到其他磁盘上,因为可用磁盘空间会发生变化,剪切将不会产生准确的结果。
cut
如何仅获得示例的可用磁盘空间(以kb为单位)的输出?
要获取df以kb为单位显示数据的输出,您只需要使用-k标志:
df
-k
df -k
另外,如果您将文件系统指定为df,则将获取特定的值,而不是所有的值:
关于您的问题的主体:您想提取给定文件系统上的可用磁盘空间量。这将需要一些处理。
给定正常df -k输出:
$ df -k /tmp Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 7223800 4270396 2586456 63% /
例如,您可以Available使用awk或来获取(第4列)cut(以前用空格将其tr传递到squeeze- repeats(-s)以空格):
Available
awk
tr
squeeze- repeats
-s
$ df -k /tmp | tail -1 | awk '{print $4}' 2586456 $ df -k /tmp | tail -1 | tr -s ' ' | cut -d' ' -f4 2586456
与往常一样,如果要将结果存储在变量中,请使用如下var=$(command)语法:
var=$(command)
$ myUsed=$(df -k /tmp | tail -1 | awk '{print $4}') $ echo "$myUsed" 2586456
另外,从Tim Bunce的评论中,您可以使用--directget来处理长文件系统名称-,这样它就不会打印出破坏引擎的行:
--direct
-
$ df -k --direct /tmp Filesystem 1K-blocks Used Available Use% Mounted on - 7223800 4270396 2586456 63% /