Answers:
通过使用该-P
选项,可以确保输出更易于解析:
- 有关每个文件系统的信息始终仅打印在一行上。挂载设备永远不会自己挂在一条线上。这意味着,如果安装设备名称的长度超过20个字符(例如,对于某些网络安装),则这些列将对齐。
这使得获得可用空间变得更加容易:
$ df -Ph . | tail -1 | awk '{print $4}'
(-h
使用兆字节,千兆字节等。如果您的系统没有,则-k
仅用于千字节。)
如果传递df
路径,它将仅返回两行:标题行,然后返回包含该路径的文件系统的数据。我们可以使用tail来仅抓住第二行。我们知道可用空间在第4列中,因此我们使用来抓住它awk
。这一切都可以用awk
:
$ df -Ph . | awk 'NR==2 {print $4}'
或许多其他的过滤器。
$PWD
而不是使用命令替换并不需要尾巴来优化命令: df -Ph $PWD | awk 'NR==2{print $4}'
awk
更好。我加入了更长的命令,因为我想举一个例子,说明如何构造一系列简单的命令来执行更复杂的事情。我已经更新了答案,以包括您的改进。
-P
是标准的(P
用于POSIX)。但是-h
是GNU扩展(也存在于其他一些系统上,但是例如在OpenBSD上,它与不兼容-P
)。
df -h --output=avail . | tail -1
time { I=0; while [ $I -lt 10000 ]; do df -Ph . | awk 'NR==2 {print $4}' > /dev/null; ((I++)); done }
)不会显示出有意义的速度差异,这并不令人惊讶-调用tail
并不昂贵,并且awk
可以省去跳到输入的结尾...可能存在差异PDP-11 ...
du -h
吗