首页 > 解决方案 > 如何抑制错误并仅显示 du Linux 命令的最终输出

问题描述

运行 du 命令显示以下输出 -

[pz@texualp ~]$ du -s /My-Data/
du: cannot read directory ‘/My-Data/ROMANIEI/smart/store’: Permission denied
du: cannot read directory ‘/My-Data/ROMANIEI/smart/data’: Permission denied
du: cannot read directory ‘/My-Data/ROMANIEI/smart/temp’: Permission denied
du: cannot read directory ‘/My-Data/ROMANIEI/smart/spool’: Permission denied
2900883608      /My-Data/
[pz@texualp ~]$

仅显示最后一行(即2900883608 /My-Data/)的方式是什么?

我也试过 - du -s /My-Data/ | tail -n1,但没有奏效。

我还想知道是否有任何方法只显示大小(即2900883608)。

标签: taildu

解决方案


正如评论中提到的那样,您应该重定向STDERR(打印这些错误的位置)。这可以通过这种方式完成:

du -s /My-Data/ 2>/dev/null

PS 如果您没有读取特定目录的权限,您将无法获得正确的结果,您将只看到您有权限的目录的大小。


推荐阅读