我试图评估多种Unix用户帐户的磁盘使用情况。 简单地说,我使用下面的命令:
du -cBM --max-depth=1 | sort -n
但是我看到很多的错误消息像下面。 我怎样才能排除所有这样的“权限被拒绝”从显示的消息?
du: `./james/.gnome2': Permission denied
我的要求会非常类似于下面的列表,通过替换“查找”到“杜”。
我怎样才能排除所有拒绝“权限”,从“发现”的消息?
以下螺纹不起作用。 我想我使用bash。
剔除杜命令的输出隐藏文件与--exclude,grep的-v或sed的
du -cBM --max-depth=1 2>/dev/null | sort -n
或在bash更好(只是筛选出此特定错误,并非所有像上段)
du -cBM --max-depth=1 2> >(grep -v 'Permission denied') | sort -n
2>的/ dev / NUL隐藏唯一的错误消息。
命令杜总是试图在目录中运行。 试想一下,你有成千上万迪尔斯的?
杜需要EVAL,如果你有persmission运行如果没有,请与下一个目录,可...
我会用一些简洁排除只有你不希望看到的线。 重定向错误输出到标准输出,和grep排除所有“拒绝” S:
du -cBM --max-depth=1 2>&1 | grep -v 'denied' | sort -n
如果2>/dev/null
不工作,也许你正在使用的shell不是bash
。
要检查你使用,你可以尝试什么壳ps -p $$
(见https://askubuntu.com/a/590903/130162 )