即使我将stderr重定向到/ dev/null,查找命令也会出错

Men*_*les 1 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);
Run Code Online (Sandbox Code Playgroud)

Joh*_*ica 5

错误来自find,而不是grep.

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

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

find . -type f -name '*.js' -print0 2>/dev/null | xargs -0 grep self.setNetwork
Run Code Online (Sandbox Code Playgroud)

或者更好的是,使用-exec.

find . -type f -name '*.js' -exec grep self.setNetwork {} + 2>/dev/null
Run Code Online (Sandbox Code Playgroud)