在 Solaris 上进行 grep 和查找时将错误重定向到 /dev/null

在 Solaris 上进行 grep 和查找时将错误重定向到 /dev/null

我发现自己不得不尝试使用 Solaris。我通常会重定向2>/dev/null它通常在 Solaris 上工作,但不会使用这两种在 Solaris 上执行递归“greps”的方法。

# no errors, but doesn't actually redirect "permission denieds" to /dev/null
/usr/sfw/bin/ggrep -rni test / 2>/dev/null

# errors
find / -type f -exec grep test {} + 2>/dev/null
find: bad option 2
find: [-H | -L] path-list predicate-list 

有人可以解释一下吗?

答案1

2>/dev/null与任何其他 Unix 变体一样在 Solaris 上运行。它是 shell 的一项功能(使用 进行错误输出重定向2>),再加上所有类似于 Unix 的东西都存在的功能(/dev/null作为通用吸收器)。

您描述的行为表明您使用的 shell 不是2>重定向运算符。据推测,您正在使用 csh。解决办法是不使用csh。 Csh 是 20 世纪 80 年代最好的交互式 shell,但现在已经不再是 1980 年代了。与在任何其他 Unix 变体上一样,没有理由在 Solaris 上使用 csh。使用 ksh,或者,如果您想要更舒适的命令行体验,请使用 zsh 或 bash。

相关内容