이 파일을 '찾기'하지 않는 이유는 무엇입니까?


21

findwith를 사용 grep하면 패턴과 일치하는 파일을 찾을 수 있습니다.

# find | grep error
./solr-modifiedSolr4/SolrPhpClient/phpdocs/errors.html
./error_log
./includes/classes/error_log

그러나 find단독으로 사용 하면 첫 번째 파일을 찾을 수 없습니다.

# find . -name error*
./error_log
./includes/classes/error_log

와 함께 사용 하지 않을 때 왜 파일을 find찾지 errors.htmlgrep합니까? find이 파일을 표시 하는 데 어떻게 사용됩니까?

답변:


42

error*쉘이 확장하기 때문에 인수를 인용해야 합니다. 따라서 현재 실행중인 find -name error_log것은입니다. 쉘이 확장 할 수 있기 때문입니다 ( error_log현재 디렉토리에 이름이 지정된 파일 이 있습니다).

find . -name 'error*'

사용 사례에 대한 올바른 호출입니다.


12
대안 적 글쓰기는 find -name error\*-하나의 키를 누르는 것이 적습니다.) 이것은 동일한 효과를 가지며 *, 찾기 명령에 문맹 별표로 전달되며 쉘에 의해 확장되지 않습니다
zhenech

3
쉘에 문제가있는 경우 (명령 행을 해석하고 모든 인수와 매개 변수를 실제 명령에 전달하는 방법) 명령 앞에 명령을 추가하여 echo실행하십시오. 따라서 실행 echo find . -name error*하면 출력했을 것입니다.find . -name error_log
Carlos Campderrós
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.