我的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);
答案 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