从 ls 删除 stderr

从 ls 删除 stderr

当我运行ls不存在的文件名时,输出会报告这一点。我想删除该输出,但仍然在找到文件时报告。这是报告下面输出的 stderr 吗?

$> ls foo
ls: cannot access foo: No such file or directory

我正在使用 tcsh,但 bash 可以作为替代方案。

答案1

这是报告下面输出的 stderr 吗?

ls是的,很可能 - 这取决于您使用的版本,但我相信大多数实现都会将错误打印到 stderr。要摆脱 stderr tcsh

( ls foo > /dev/tty ) >& /dev/null

答案2

您始终可以:

sh -c 'ls foo 2>/dev/null'

这是作弊吗?

相关内容