2013-04-10 3 views
10

찾을 수없는 내가이 명령을 실행발견은 내가 디렉토리 "집"에있어 반복적으로

find . -iname *.mov 

그것은 ".. CD", 지금을

./root/movies/Corey/holtorf/Intro.mov 

을 생산 및이를 실행 명령

find . -iname *.mov 

"Intro.mov"는 결과가 아닙니다. 이 이유는 무엇입니까? 그리고 현재 디렉토리에서 ".mov"로 끝나는 모든 파일을 재귀 적으로 검색하는 명령은 무엇입니까? 감사.

답변

20

인수에 와일드 카드를 사용하면 쉘에서 확장됩니다. 이를 방지하려면 "* .mov"라고 써야합니다.

경우에 따라 을 찾기 전에 파일을 확장하면 찾을 수있는 인수를 전달하는이 나오고 파일 목록을 가져오고 원본 패턴을 기반으로 검색하지 않습니다.

16

홈 디렉토리가 실제로 심볼릭 링크 인 경우 -follow을 추가해야 할 수도 있습니다. 패턴을 따옴표로 묶지 않으면 셸은 find으로 전달하기 전에 패턴을 확장하려고합니다.

find . -iname "*.mov" -follow 
4

아직 댓글을 달 수 없으므로 답변으로 게시하겠습니다 (사전 사과).

당신에게 도움이 될이 게시물 "find: paths must precede expression:" How do I specify a recursive search that also finds files in the current directory?

그리고 추가 정보를 확인하시기 바랍니다 : 를 재귀 적으로 현재 디렉토리의 특정 이름을 가진 파일을 찾으려면을, 당신은 그렙 중 하나를 사용하거나 찾을 수

grep -r "*.mov" . 

또는 대소 문자를 구분 검색

grep -ri "*.mov" . 

를 찾을 수에 대한 또한
find . -type f -exec grep -l "*.mov" {} + 

유용한 링크 http://www.cyberciti.biz/faq/howto-recursively-search-all-files-for-words/

1

내가 사용하는 것 :

grep -rn 'mov' . 

재귀 숫자 검색

관련 문제