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とユーザー名を印刷する最初の端末を確認してください。

関連情報