![grep -r 默认在哪里搜索?](https://linux22.com/image/48451/grep%20-r%20%E9%BB%98%E8%AE%A4%E5%9C%A8%E5%93%AA%E9%87%8C%E6%90%9C%E7%B4%A2%EF%BC%9F.png)
我发现如果我使用 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 和您的用户名。