我想要grep
一个特定的内核设置如下
$ sudo sysctl -a --ignore | grep -i max_map_count 2>/dev/null
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.docker0.stable_secret"
sysctl: reading key "net.ipv6.conf.enp2s0.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
sysctl: reading key "net.ipv6.conf.wlp3s0.stable_secret"
vm.max_map_count = 262144
由于我既忽略了有关未知键(即--ignore
选项)的信息,又将潜在的错误输出重定向到/dev/null
,这些reading jey
行打印了什么?
您正在将 stderr 重定向
grep
到 /dev/null 但 stderr 消息来自sysctl
. 尝试stable_secrect
可以在此处找到对消息的解释。简而言之,密钥存在但未初始化导致消息。关于您的实际命令和目标,管道
|
仅重定向stdout
而不是stderr
在其余部分发送到管道之前打印。要获得预期的行为,您可以使用以下命令之一。
或者,您也可以使用
find
.更好的是,因为您已经知道要搜索的内容。