隐藏猫咪的错误

时间:2014-08-18 19:23:42

标签: cat

( find -print0 | xargs -0 cat ) | wc -l(fromhttp://stackoverflow.com/questions/1358540/how-to-count-all-the-lines-of-code-in-a-directory-recursively)打印总数所有子目录中所有文件中的行。但它也打印了一堆像cat: ./x: Is a directory这样的行。

我尝试了( find -print0 | xargs -0 cat ) | wc -l &> /dev/null(以及2> /dev/null> /dev/null 2>&1)但邮件仍然打印在shell中。

是否无法隐藏此输出?

( find -type f -print0 | xargs -0 cat ) | wc -l克服了这个问题,但我仍然很好奇为什么重定向stderr不起作用,以及是否有更通用的方法来隐藏cat的错误。< / p>

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

如果您希望find仅查找“常规”文件,则必须使用find -type f …

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