【问题标题】:Supressing 'Permission Denied' warning in du command [duplicate]在 du 命令中抑制“权限被拒绝”警告 [重复]
【发布时间】:2016-05-16 15:09:59
【问题描述】:

我想列出一个目录中所有子文件夹的大小。当我尝试 du -h --max-depth=1 输出中充斥着“权限被拒绝”这样的语句

du:无法读取目录`./folder_name':权限被拒绝

如何抑制这些警告?

我尝试了一种解决方法,将输出通过管道传送到 grep,如下所示

du -h --max-depth=1 | grep -v 'du:'

但这似乎也不起作用!

【问题讨论】:

    标签: linux bash shell


    【解决方案1】:

    试试:

    $ du -h --max-depth=1 2>/dev/null
    

    这会将 stderr(文件句柄 2)重定向到 /dev/null,忽略任何错误消息。

    【讨论】:

    • grep -v 不起作用有什么原因吗?
    • grep -v 'du:' 不起作用的原因是错误消息在 stderr 流上。在如图所示的管道中,它是从一个命令重定向到下一个命令的标准输出流,因此grep 命令永远不会看到错误消息。
    • @sandy:推荐阅读:Standard streams
    • 请注意,您可以通过将du 的stderr 流重定向到stdout 来使 grep 命令工作。试试du -h --max-depth=1 2>&1 | grep -v 'du:'。祝你好运。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-12
    • 2023-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-26
    相关资源
    最近更新 更多