Hide cat errors


Hide cat errors

( find -print0 | xargs -0 cat ) | wc -l(fromhttp:/ / / / / 1358540 stackoverflow.com问题如何计数的所有行代码在一个目录recursively)的总数量的打印线的所有文件的所有subdirectories。但它是一堆线样cat: ./x: Is a directory版画。

我想( find -print0 | xargs -0 cat ) | wc -l &> /dev/null(和因此2> /dev/null> /dev/null 2>&1消息),但仍然是印刷到外壳。

这是不可能的隐藏输出?

( find -type f -print0 | xargs -0 cat ) | wc -lovercomes这问题,但我仍然很好奇为什么redirecting stderr不工作,如果有一个更通用的方式从cat隐藏错误。


您需要将cat命令的stderr流重定向到/dev/null。您所做的是重定向wc的stderr流。试试这个:

1
( find -print0 | xargs -0 cat 2>/dev/null ) | wc -l


如果您希望find只找到"常规"文件,则必须使用find -type f …

顺便说一下,如果你想计算代码行,你应该看看ohcount