可能的重复:
如何从查找程序中删除“权限被拒绝”的打印输出语句?
当我在 Linux (SuSE) 中运行此命令时:
find / -name ant
我收到许多以下形式的错误消息:
find: `/etc/cups/ssl': Permission denied
是否find
需要一个参数来跳过显示这些错误并仅尝试我有权访问的文件?
答案1
您可以过滤掉发送至 的消息stderr
。我更喜欢将他们重定向到stdout
这样的状态。
find / -name art 2>&1 | grep -v "Permission denied"
解释:
简而言之,所有常规输出都转到标准输出 ( stdout
)。所有错误消息都为标准错误 ( stderr
)。
grep
通常查找/打印指定的字符串,然后-v
反转它,因此它查找/打印每个字符串不包含“权限被拒绝”。 find 命令的所有输出,包括通常发送到stderr
(文件描述符 2)的错误消息,现在都转到stdout
(文件描述符 1),然后由该命令过滤grep
。
这假设您正在使用bash/sh
shell。
在tcsh/csh
你会使用
find / -name art |& grep ....