为什么给定的命令不屏蔽其他行?

为什么给定的命令不屏蔽其他行?

命令:sudo find / -name miniedit.py -print | grep -i "miniedit" | tail -1
输出:

find: ‘/proc/10031/task/10031/net’: Invalid argument
find: ‘/proc/10031/net’: Invalid argument
find: ‘/run/user/1000/gvfs’: Permission denied
find: ‘/run/user/1000/doc’: Permission denied
/usr/share/doc/mininet/examples/miniedit.py

预期输出:/usr/share/doc/mininet/examples/miniedit.py

我究竟做错了什么?

答案1

你没有做错什么。你只是误解了你在屏幕上看到的内容。

这些“额外”的行是错误消息,表示find无法读取目录。它们被写入标准误差流,而预期输出(/usr/share/doc/mininet/examples/miniedit.py)写入标准输出溪流。

如果您只想获取标准输出而不获取标准错误,请通过将其重定向到来抑制后者/dev/null,即。

sudo find / -name miniedit.py -print 2>/dev/null | grep -i "miniedit" | tail -1

相关内容