본문 바로가기
OS/Ubuntu

Ubuntu에서 커맨드라인에서 파일 찾기 (find, locate 명령어)

by yazasus 2025. 7. 14.
728x90

커맨드라인으로 파일 찾기: find vs locate

서버나 개발 환경에서 수많은 파일 중 원하는 파일을 빠르게 찾는 것은 필수입니다. Ubuntu에는 대표적으로 findlocate 두 가지 명령어가 제공되며, 상황에 맞춰 사용하면 효율이 크게 향상됩니다.

1. find 명령어 기초 사용법

find는 실시간으로 파일 시스템을 탐색합니다. 경로와 조건식을 결합해 이름, 크기, 수정일자 등 다양한 기준으로 검색할 수 있습니다.


# 현재 디렉터리에서 .log 파일 찾기
find . -type f -name "*.log"

# /var 디렉터리에서 7일 이상 수정되지 않은 파일 찾기
find /var -type f -mtime +7

2. locate 명령어 기초 사용법

locate는 데이터베이스(updatedb)에서 빠르게 결과를 출력합니다. 대용량 파일 시스템에서 속도가 빠르지만, 실시간 반영을 위해 주기적 데이터베이스 갱신이 필요합니다.


# database 업데이트
sudo updatedb

# 이름에 "config"가 포함된 모든 경로 검색
locate config

3. find와 locate 성능 비교

find는 최신 상태 파일까지 모두 검색하지만 속도가 느릴 수 있습니다. 반면 locate는 DB 기반이라 즉시 결과를 주지만, DB가 최신이 아닐 수 있습니다.

4. 실전 예시 조합 활용

두 명령어를 조합해 사용하면 좋습니다. 예: 빠르게 후보 파일을 찾은 뒤 find로 상세 조건을 적용해 최종 결과를 걸러낼 수 있습니다.


# locate로 빠른 목록 추출 → grep으로 필터링
locate .env | grep project

# find로 크기가 큰 .sql 파일만 필터링
find /home -type f -name "*.sql" -size +5M

마무리 및 실무 팁

일반적으로 locate로 빠르게 후보를 찾고, 정확한 조건이 필요할 때 find를 사용하는 것이 효율적입니다. updatedb는 크론탭에 등록해 매일 새벽 자동 실행해두면 편리합니다.

실무 팁: 자주 쓰는 검색 필터를 쉘 함수나 alias에 등록해 단축키처럼 사용해보세요. 예를 들어 alias fpc='find . -type f -name'처럼 설정하면 편리합니다.

728x90