可能的重复:如何从查找程序中删除“权限被拒绝”打印输出语句?
在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
外壳。在
tcsh/csh
下,您将使用 find / -name art |& grep ....
评论
甚至只是找到/ -name art 2> / dev / null
–急
2012年7月11日在20:06
@rush这将过滤掉所有错误消息,而不仅仅是权限被拒绝的错误消息
– Michael Mrozek
2012年7月11日在23:08
想一想,这就是所有发现CAN返回的错误消息。磁盘已满,磁盘读取错误,...可能,但极少见,并且查找不适合处理这些问题。如果仍然出现这些错误,您就会遇到其他问题。查找自己的错误结果甚至是模糊的。0 =好,!0 =发生了什么。除了通过/失败之外,甚至没有其他区别。
– lornix
2012年7月13日在3:24
我在此使用@MichaelMrozek,我宁愿查看所有可能的错误消息,然后决定将其过滤掉,而不是将其发送到看不见的位桶中。
–莱文
2012年7月13日下午3:35
当我使用find 2> / dev / null时,我总是只想要结果集,而不想要任何其他错误消息。当结果集返回null时,我只需运行“常规”查找并找出问题所在。
–巴林·巴比奇(BálintBabics)
18-6-28在14:34
评论
由于您询问要查找的参数,因此请考虑:find /!可读的修剪。这就像“修剪那些结果(!)不可读”。请参阅:stackoverflow.com/questions/762348/…