我发现自己不得不尝试使用 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。