我想列出文件服务器中的目录磁盘使用情况。
我还想忽略错误消息。这是我的命令:
du -sh * | grep -v "Permission denied" | sort -n
结果仍然包含被拒绝的权限行:
du: cannot access './myFile1/': Permission denied
du: cannot access './myFile2/': Permission denied
du: cannot access './myFile3/': Permission denied
我做错什么了?
最佳答案
这是因为“拒绝权限”是通过标准错误发送的,而不是通过标准输出发送的。
如果不需要此信息,只需通过将stderr重定向到/dev/null使其静音:
du -sh * 2>/dev/null | sort -n
所有这些错误消息都会出现这种情况:
$ touch a
$ ls a asfasd
ls: cannot access asfasd: No such file or directory
a
$ ls a asfasd | grep cannot
ls: cannot access asfasd: No such file or directory
$ ls a asfasd 2>/dev/null
a
关于bash - 管道后如何使用invert grep?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33654501/