即使我将stderr重定向到/ dev / null,Find命令也会给出错误

时间:2018-07-04 20:26:34

标签: bash find

我的find命令正在生成我不想看到的错误。我将stderr重定向到/ dev / null,但是它不起作用。帮我藏起来。

~$ find . -type f -name '*.js' -print | xargs grep self.setNetwork 2>/dev/null
find: ‘./_statCon’: Permission denied
./oz-workspace/src/js/truffle-contract.js:            self.setNetwork(network_id);
./oz-workspace/src/js/truffle-contract.js:                self.setNetwork(uris[i]);
./oz-workspace/src/js/truffle-contract.js:            self.setNetwork(network_id);

2 个答案:

答案 0 :(得分:5)

错误来自find,而不是grep

find . -type f -name '*.js' -print 2>/dev/null | xargs grep self.setNetwork

对于它的价值,您应该使用-print0 | xargs -0正确处理带有空格的文件名。

find . -type f -name '*.js' -print0 2>/dev/null | xargs -0 grep self.setNetwork

或者更好的是,使用-exec

find . -type f -name '*.js' -exec grep self.setNetwork {} + 2>/dev/null

答案 1 :(得分:1)

它消失了

( find . -type f -name '*.js' -print 2>/dev/null ) | xargs grep self.setNetwork 2>/dev/null