터미널을 통해 Mac을 검색 하시겠습니까?


22

터미널을 사용하여 Mac을 검색하는 명령이 있습니까? grep을 사용하여 검색을 시도했지만 응답하지 않는 것 같고 아무것도 나타나지 않습니다.

예를 들어 "grep Files"(폴더 이름)를 입력하면 빈 줄만 인쇄되고 아무 일도 일어나지 않습니다.



모든 유형의 파일을 검색하는 데 관심이 있습니다. 반드시 텍스트 파일을 제외 할 필요는없고 텍스트 파일 만 제외 할 수도 있습니다.
JFW

답변:


21

mdfindSpotlight로 검색을 수행하기 위해이 명령을 사용할 수도 있습니다 . 자세한 내용은 여기를 참조하십시오 .

mdfind -name searchterm이름을 가진 파일을 검색하기 위해 사용 합니다 searchterm. mdfind searchterm파일 이름 및 내용을 검색하는 데 사용 합니다.


25

특정 이름의 파일을 찾으려면 다음을 사용하십시오. find

맨 페이지는 여기에서 찾거나 man find터미널 프롬프트에서 입력하여 찾을 수 있습니다 .

기본적으로 find는 지정한 파일 회의 기준을 재귀 적으로 찾습니다. 가장 쉬운 예 :

find . -name file_name -print

그러면 현재 디렉토리에서 시작하여 아래에서 "file_name"이라는 파일을 검색하고 해당 이름으로 파일을 인쇄합니다.

find ~ -name ".DS_Store" -delete

모든 .DS_Store 파일을 찾아 삭제합니다.

이름, 정규식, 날짜별로 검색 할 수 있습니다. -exec술어를 사용하여 모든 Unix 방식으로 파일에 대해 작업 할 수 있습니다 .

find를보다 복잡한 작업 파이프 라인의 시작으로 사용할 수도 있습니다. 예:

find . -type f -print | egrep -i '\.m4a$|\.mp3$'

확장자가 .m4a 또는 .mp3 인 모든 파일을 찾습니다

find . -type f -print | egrep -i '\.m4a$|\.mp3$' | wc -l

그 파일 수를 알려줄 것입니다.


경우 -print유일한 조건이다, 그것은 생략 할 수 있습니다; 또한 간단한 globbing이 가능합니다. 따라서 .txt디렉토리에서 모든 파일을 찾는 것은 다음과 같이 foo수행됩니다.find foo -name \\*.txt
Norman Gray

@yoshi : 그것은 절대적으로 거짓입니다. Cwd에서 find .IS를 재귀 적으로 입력 합니다. find .루트 디렉토리에 입력 하십시오!
drewk

내 나쁜 것은 재귀하지 않았다고 맹세 할 수 있지만 서버가 -shrug-을 질식 시켰습니다.
nuala

5

전체 폴더를 검색하려면 grep에서 -r을 사용하십시오.

grep -r pattern folder/to/search

find를 사용하면 xargs를 사용할 수도 있습니다.

find folder/to/search -name '*.txt' | xargs grep pattern

또는 한 번에 두 개의 파일을 검색하여 파일 이름을 지정했는지 확인하십시오.

find folder/to/search -name '*.txt' | xargs grep -n2 pattern

2

grep패턴과 파일 스펙을 모두 예상합니다. 하나가 없으면 패턴으로 전달 된 것을 사용하고 표준 입력을 통해 데이터가 검색 될 때까지 기다립니다.

보다 복잡한 파일 스펙을 사용하려면을 사용하십시오 find.

find ~ -name '*.txt' -exec grep -q 'secret' {} \; -print

나는 기본적으로 명령에 입력 한 이름을 가진 파일을 찾기를 원합니다.
JFW

이 경우에서 -exec술어 를 사용할 필요가 없습니다 find.
Ignacio Vazquez-Abrams
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.