grep -r 默认在哪里搜索?

grep -r 默认在哪里搜索?

我发现如果我使用 grep 搜索而不指定路径,就像grep -r 'mytext'它需要无限长的时间。同时,如果我使用指定的路径进行搜索,grep -r 'mytext' .它会立即找到我需要的内容。所以,我很好奇,在第一种形式中,grep 在哪个目录中搜索?

UDATE:grep 版本:grep (GNU grep) 2.10

答案1

实际上它不会在任何地方搜索。它等待来自标准输入的输入。

尝试这个:

beast:~ viroos$ grep foo

当您键入包含“foo”的行并按 Enter 键时,该行将重复,否则光标将移动到新行,但 grep 不会打印任何内容。

答案2

正如 Maciek 之前的回答所说:

实际上它不会在任何地方搜索。它等待来自标准输入的输入。

但是,如果 /proc 可用,则可以通过将数据管道传输到其第 0 个第一个描述符中来写入已运行程序的标准输入:

在一个终端运行

grep "hello"

并看到它无限期地等待...在另一个终端中输入以下内容:

echo "hello $USER" > /proc/`pgrep grep`/fd/0

查看第一个终端打印 hello 和您的用户名。

相关内容