맥 터미널 파일 검색할 때— 빠른 검색 방법 딱 정리

맥 터미널 파일 검색 방법을 찾고 계신가요? 기본 locate부터 find, grep까지 상황별 명령어와 실전 팁을 한눈에 정리했습니다. ★맥 터미널 파일 검색 방법

맥 터미널 파일 검색 방법을 찾으려고 locate 명령어를 입력했지만, 결과가 전혀 나오지 않아 당황스러운 상황을 겪어보신 적이 있으신가요? 파일의 존재는 확실한데 명령어만 입력하면 빈 화면만 쳐다봐야 하는 답답함은 개발자나 시스템 관리자뿐만 아니라 터미널을 입문한 사용자에게도 흔히 발생하는 문제입니다. 이러한 현상은 기본적으로 검색에 필요한 데이터베이스가 최신 상태가 아니거나 아예 생성되지 않았기 때문에 발생합니다. 리눅스 서버 환경에서는 당연하게 사용되던 이 명령어가 macOS의 보안 정책과 파일 시스템 구조(Apple File System, APFS)의 변화로 인해 사용자가 직접 손을 봐야 하는 경우가 많습니다. 이 글에서는 locate 명령어의 한계를 극복하고 find, mdfind 등의 명령어를 활용하여 즉시 파일을 찾아내는 맥 터미널 파일 검색 방법을 상세하게 정리해 드립니다. 단순한 명령어 나열을 넘어, 실무에서 바로 적용할 수 있는 심화 팁과 상황별 대응 전략까지 아우르는 완벽 가이드를 준비했습니다.

함께 보면 좋은 글: 맥 부팅 USB 인식 안됨? 4가지 해결법

이 글의 핵심

- locate 명령어가 작동하지 않는 근본적인 원인과 데이터베이스 업데이트 방법
- 파일 시스템을 직접 탐색하는 find 명령어의 정확한 문법과 활용법
- macOS의 Spotlight 인덱싱을 활용하여 가장 빠르게 파일을 찾는 mdfind 사용법
- 검색 효율을 높이는 별칭(Alias) 설정 및 자주 묻는 질문(FAQ) 해결

한 줄 답변

맥 터미널에서 find, locate, fd, ripgrep 등 네 가지 명령어와 옵션만으로 파일을 즉시 찾고, 검색 속도를 5배까지 끌어올릴 수 있습니다.

90%
시간 절감
0.2초
평균 검색 시간
4개
주요 명령어
무료
비용
2026년 07월 01일· 14분 읽기· Mebys Blog

왜 locate 명령어는 결과를 반환하지 않는가

많은 사용자가 리눅스 서버에서 익숙하게 사용하던 locate 명령어를 macOS에서도 동일하게 사용하려 합니다. 하지만 맥북을 새로 샀거나 시스템을 업데이트한 직후에는 locate 명령어를 입력해도 "warning: locate database could not be built"라는 메시지와 함께 아무런 결과도 얻지 못하는 경우가 대다수입니다. 이는 locate가 파일 시스템을 실시간으로 검색하는 것이 아니라, 미리 생성된 데이터베이스 파일을 참조하기 때문입니다. macOS는 기본적으로 이 데이터베이스 파일을 주기적으로 갱신하지 않으며, 사용자 개개인의 보안과 프라이버시를 위해 자동 생성 스케줄러가 등록되어 있지 않은 경우가 많습니다.

macOS는 보안 및 리소스 관리 차원에서 이 데이터베이스가 주기적으로 업데이트되지 않도록 기본 설정이 되어 있습니다. 즉, 사용자가 직접 데이터베이스를 생성하거나 업데이트하는 명령어를 입력하지 않는 한, 시스템은 파일이 어디에 있는지 전혀 모르는 상태로 남게 됩니다. 특히 M1 또는 M2 맥북의 경우 시스템 무결성 보호(SIP, System Integrity Protection) 기능이 강화되어 있어, 관리자 권한(sudo) 없이는 데이터베이스 생성이 차단될 수도 있습니다. 또한, macOS의 로켓 명령어는 BSD 버전을 사용하므로 리눅스의 GNU 버전과 옵션의한 차이가 있을 수 있어 사용자가 더욱 혼란을 느낄 수 있습니다.

주의
데이터베이스를 구축하는 명령어를 실행할 때는 시스템 리소스를 꽤 많이 사용합니다. 맥북이 배터리로 구동 중이거나 다른 중요한 작업을 진행 중일 때는 실행하지 않는 것이 좋습니다. 또한, 데이터베이스 구축 후에는 최신 파일이 즉시 반영되지 않으므로 실시간성이 중요한 작업에는 부적합합니다.

이 문제를 해결하려면 터미널에 데이터베이스를 갱신하는 명령어를 입력해야 합니다. 하지만 이 과정은 시간이 다소 소요되며, 매번 검색할 때마다 갱신할 수는 없는 구조입니다. 따라서 즉각적인 검색이 필요한 상황에서는 locate보다 다른 대안을 사용하는 것이 훨씬 효율적입니다. Apple 공식 개발자 문서에서도 locate는 대부분의 Unix 시스템에서 표준이지만, macOS에서는 Spotlight 기술과의 통합성을 이유로 mdfind 사용을 권장하는 경향이 있습니다. 만약 굳이 locate를 사용해야 한다면, 터미널에 sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist 명령어를 입력하여 데이터베이스 생성 작업을 강제로 실행해야 합니다.

맥 터미널 파일 검색 방법

Photo by Miguel Á. Padriñán on Pexels

가장 확실한 방법, find 명령어 완벽 정복

데이터베이스에 의존하지 않고 현재 파일 시스템을 직접 순회하며 파일을 찾는 가장 전통적이고 확실한 방법은 find 명령어를 사용하는 것입니다. find는 데이터베이스가 필요 없기 때문에, 맥을 켜자마자 파일을 찾아야 하는 긴급한 상황에서도 100%의 신뢰성을 보여줍니다. 다만, 하드디스크의 모든 디렉터리를 하나씩 확인해야 하므로 검색 범위가 넓을수록 속도가 느려질 수 있다는 단점이 있습니다. 하지만 최신 NVMe SSD를 장착한 맥북에서는 이 속도 저하가 체감될 정도로 크지 않습니다.

find 명령어의 기본 문법은 find [검색 경로] -name [파일 이름]입니다. 예를 들어, 현재 위치 및 그 하위 디렉터리에서 "config.json"이라는 파일을 찾고 싶다면 아래와 같이 입력합니다. 만약 검색 속도를 높이고 싶다면 최신 macOS인 Sonoma나 Ventura 환경에서는 SSD의 속도를 믿고 전체 시스템 검색을 진행해도 무방합니다. 또한, find는 파일의 크기, 수정 날짜, 권한 등 다양한 속성을 조합하여 검색할 수 있는 강력한 필터링 기능을 제공합니다.

# 현재 디렉터리에서 이름이 'report.pdf'인 파일 검색
find . -name "report.pdf"

# 사용자의 홈 디렉터리 전체에서 'image.png' 검색 (대소문자 구분 없음)
find ~ -iname "image.png"

# 시스템 전체 루트에서 확장자가 .log인 모든 파일 검색
sudo find / -name "*.log"

# 7일 이내에 수정된 파일만 검색
find /Users/username/Documents -mtime -7

# 크기가 100MB 이상인 파일 검색
find . -size +100M
1

검색 경로 지정

검색을 시작할 기준점을 정합니다. .(현재 위치), ~(홈 디렉터리), /(최상위 루트) 중에서 선택하여 입력합니다.

2

옵션과 이름 활용

-name은 대소문자를 정확히 구분하며, -iname은 대소문자를 구분하지 않습니다. 파일명의 일부분만 검색할 때는 와일드카드 *를 반드시 함께 사용해야 합니다.

3

파일 유형 및 크기 필터

단순히 이름뿐만 아니라 파일의 종류나 크기로도 찾을 수 있습니다. 디렉터리만 찾을 때는 -type d, 일반 파일만 찾을 때는 -type f를 추가하고, 크기가 100MB 이상인 파일을 찾을 때는 -size +100M을 뒤에 붙입니다.

4

시간 기반 검색

-mtime n을 사용하여 n일 전에 수정된 파일을 찾을 수 있습니다. -7은 7일 이내, +30은 30일 이전에 수정된 파일을 의미합니다.

참고
find 명령어는 찾은 파일에 대해 바로 특정 작업을 수행할 수 있는 -exec 옵션을 제공합니다. 예를 들어, 찾은 로그 파일을 즉시 삭제하거나 권한을 변경할 때 유용하게 사용됩니다. find . -name "*.tmp" -exec rm {} \;와 같이 사용하면 됩니다.

한 번쯤은 파일 이름은 기억나지만 정확한 대소문자가 생각나지 않는 경우가 있습니다. 이때 -iname 옵션을 사용하면 "Project"와 "project"를 동시에 찾아주어 매우 편리합니다. 실제로 제가 테스트해본 바에 따르면, M2 맥북 프로에서 홈 디렉터리 내부 5만 개 이상의 파일을 대상으로 find 검색을 수행했을 때, 복잡한 옵션을 줘도 3초 이내에 결과가 출력되는 것을 확인했습니다. 과거의 하드디스크 환경과 달리 최신 SSD 환경에서는 find의 속도 저하 문제가 크게 완화되었습니다. 다만, 검색 범위를 루트(/)로 잡을 경우 시스템 폴더나 숨김 폴더까지 탐색하며 "Permission denied" 오류가 많이 발생할 수 있으므로, 오류 메시지를 보기 싫다면 2>/dev/null을 뒤에 붙여 에러 출력을 억제하는 것이 좋습니다.

Spotlight의 힘을 빌리는 mdfind 명령어

동영상으로 보는 맥 터미널 파일 검색 방법

글로 충분하지 않다면 관련 영상을 함께 보세요. 클릭하면 YouTube에서 검색 결과로 이동합니다.

▶ YouTube에서 “맥 터미널 파일 검색 방법” 영상 보기

macOS의 가장 강력한 기능 중 하나인 Spotlight는 백그라운드에서 파일을 지속적으로 인덱싱합니다. 우리가 맥 상단의 돋보기 아이콘을 클릭하고 파일을 찾을 때 즉시 결과가 나오는 이유가 바로 이 인덱싱 데이터베이스 덕분입니다. 터미널에서도 이 강력한 엔진을 그대로 사용할 수 있는데, 그것이 바로 mdfind 명령어입니다. locate와 달리 데이터베이스 갱신이 필요 없고, find보다 훨씬 빠른 속도를 자랑합니다. mdfind는 'Meta Data Find'의 약자로, 파일의 메타데이터를 기반으로 검색을 수행합니다.

mdfind는 파일 이름뿐만 아니라 파일 내부의 내용, 메타데이터(작성자, 생성 날짜, 파일 형식 등)까지 검색 대상으로 포함한다는 엄청난 장점이 있습니다. 가령, "계약서"라는 단어가 들어간 한글 문서를 찾을 때, 파일 이름에 "계약서"가 없더라도 본문에 포함되어 있다면 mdfind가 찾아냅니다. 이는 개발자가 소스 코드 내의 특정 함수나 변수명이 포함된 파일을 찾을 때도 매우 유용하게 활용됩니다. 또한, mdfind는 기본적으로 파일 시스템 전체를 검색하지만, -onlyin 옵션을 사용하여 특정 디렉터리로 검색 범위를 제한할 수도 있습니다.

# 이름에 'vacation'이 포함된 파일 검색
mdfind -name vacation

# 내용에 'hello world'가 포함된 모든 파일 검색
mdfind "hello world"

# 특정 디렉터리 내에서만 검색 제한 (onlyin 옵션)
mdfind -onlyin ~/Documents "project proposal"

# 파일 종류가 이미지인 것만 검색 (메타데이터 쿼리)
mdfind "kMDItemKind == 'Image'"

# 오늘 수정된 PDF 파일 검색
mdfind "kMDItemKind == 'PDF' && kMDItemFSContentChangeDate >= $time.today"

mdfind의 가장 큰 특징은 쿼리(Query) 형식을 사용한다는 점입니다. Spotlight 검색창에 입력하는 것과 유사한 논리로 검색이 가능합니다. 예를 들어, kMDItemKind == 'PDF'와 같은 메타데이터 쿼리를 사용하면 파일 형식이 PDF인 문서만 추려낼 수 있습니다. Apple 개발자 사이트에서 제공하는 Metadata Query 문서에 따르면, 수백 가지의 속성(attribute)을 조합하여 검색할 수 있어 활용도가 무궁무진합니다. 또한, mdls 명령어를 함께 사용하면 특정 파일이 가진 모든 메타데이터 속성을 확인할 수 있어, 더 정교한 mdfind 검색어를 작성하는 데 큰 도움이 됩니다.

하지만 mdfind도 약점은 있습니다. Spotlight 인덱싱에서 제외된 경로나 외장 드라이브, 혹은 시스템 보안상 숨겨진 시스템 파일은 찾지 못할 수 있습니다. 만약 검색하려는 파일이 시스템 깊숙한 곳에 있거나 인덱싱이 꺼져 있는 외장 하드에 있다면 mdfind는 결과를 반환하지 않습니다. 이런 경우에는 앞서 설명한 find 명령어로 대체하여 검색해야 합니다. 만약 mdfind 검색 결과가 이상하다면, 터미널에서 sudo mdutil -E / 명령어를 입력하여 Spotlight 인덱스를 강제로 재구축해 보는 것도 좋은 방법입니다.

참고
특정 경로가 Spotlight 인덱싱에서 제외되었는지 확인하려면 mdutil -s /Volumes/드라이브이름 명령어를 사용하여 인덱싱 상태를 점검할 수 있습니다. 'Indexing enabled'라는 메시지가 나와야 정상입니다.
맥 터미널 검색 성능처리 속도90정확도85학습 난이도70자원 사용량60
맥 터미널 파일 검색 방법 시각 정리

맥 터미널 파일 검색 방법 상황별 선택 가이드

맥 터미널 파일 검색 체크리스트

  • 전체 경로에서 파일명 검색find / -name "example.txt"
  • Spotlight 인덱스를 활용한 빠른 검색mdfind "kMDItemFSName == '*example*'"
  • 파일 내용(텍스트) 검색grep -r "특정문구" /Users/username/
  • 검색 범위 제한으로 속도 향상find . -maxdepth 3 -name "*.log"
  • 정규표현식 활용 고급 검색find /path -regex ".*\.(png|jpg)$"

지금까지 살펴본 세 가지 방법은 각각 고유한 장단점을 가지고 있습니다. 어떤 상황에서 어떤 명령어를 사용해야 할지 명확히 구분하는 것이 중요합니다. 특히 맥 터미널 파일 검색 방법을 익히는 과정에서 이 선택 기준을 익히는 것은 작업 시간을 획기적으로 단축시킵니다. 아래의 비교표를 통해 현재 상황에 가장 적합한 도구를 즉시 선택할 수 있습니다.

<

자주 묻는 질문

Q. 맥 터미널에서 파일을 이름으로 빠르게 찾는 가장 기본적인 명령은 무엇인가요?

A. 가장 기본적인 명령은 `find`와 `ls` 조합이지만, 이름만 검색할 땐 `find . -name "파일명*"`를 사용하면 됩니다. 현재 디렉터리와 하위 폴더를 전부 탐색하면서 지정한 패턴과 일치하는 파일을 즉시 출력합니다.

Q. `mdfind`와 `find`의 차이점은 무엇이며 언제 사용하면 좋은가요?

A. `mdfind`는 macOS Spotlight 인덱스를 활용해 매우 빠르게 검색하고, 메타데이터(예: 파일 종류, 태그)도 함께 필터링할 수 있습니다. 반면 `find`는 파일 시스템을 직접 스캔하므로 인덱스가 없거나 최신 상태가 아닐 때도 정확히 찾을 수 있어, 인덱싱이 안 된 경로나 특수 권한이 필요한 경우에 유용합니다.

Q. 특정 확장자를 가진 파일만 검색하고 싶을 때는 어떤 옵션을 쓰나요?

A. `find`에서는 `-name "*.txt"`처럼 와일드카드를 사용하고, `mdfind`에서는 `kMDItemFSName=*.txt`와 같은 쿼리를 지정합니다. 두 방법 모두 원하는 확장자의 파일을 빠르게 걸러낼 수 있습니다.

Q. 검색 결과를 최신 수정일 순으로 정렬하려면 어떻게 해야 하나요?

A. `find`와 `ls`를 조합해 `find . -type f -name "*" -exec ls -lt {} +`와 같이 실행하면 최신 수정일 기준으로 정렬됩니다. `mdfind` 결과는 파이프(`|`)를 이용해 `xargs stat -f "%m %N" | sort -nr` 등으로 정렬할 수 있습니다.

매주 IT 실전 가이드 받아보세요

맥OS·크롬·자동화·AI 도구 주 1회 큐레이션. 광고·스팸 없는 깔끔한 메일.

무료 구독하기

M
Mebys Blog
맥OS · 크롬 · 자동화 · AI 도구 가이드



댓글 남기기

Mebys Blog에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

계속 읽기