我执行了一个非常简单的grep
:
grep -r "someSimpleWord" .
现在,有一个目录包含一些产生一些消息的文件,如
grep: path/to/some/unpermitted/file: Permission denied
打印完这些消息后grep
停止做任何事情。它不会返回也不会继续搜索(在打印消息后查看top
输出没有grep
。
当我添加
--exclude-dir="path/to/some/unpermitted"
grep再次按预期工作。
由于没有错误消息,我会认为grep
中存在错误,但感觉不太可能。我在这里缺少什么?
我在Ubuntu 12.02上。
编辑:考虑使用-s
选项(抑制所有错误消息),这将留下空行和grep什么也不做。所以你等待等等,因为,这可能需要一段时间。
答案 0 :(得分:3)
grep停止的文件的名称,./path to unpermitted/ptmx
表示它可能是一个特殊的设备文件,例如pty mux,通常只能在/ dev /目录中找到。 grep将打开它,但设备不提供任何数据,因此grep会阻塞,直到数据可用(从不)。
使用-D skip
参数grep。
-D ACTION, --devices=ACTION If an input file is a device, FIFO or socket, use ACTION to process it. By default, ACTION is read, which means that devices are read just as if they were ordinary files. If ACTION is skip, devices are silently skipped.