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와 사용자 이름을 인쇄하는 첫 번째 터미널을 확인하세요.

관련 정보