김 컴퓨터


find (Search for Files)

find는 리눅스 파일 시스템에서 특정 조건(이름, 크기, 시간, 권한 등)에 맞는 파일이나 디렉터리를 찾아내는 가장 강력한 도구입니다. 단순히 찾는 것에 그치지 않고, 찾은 결과에 대해 특정 명령을 실행(-exec)할 수도 있습니다.

[Image of Linux directory tree being scanned by find command]


1. 기본 사용법

find [경로] [조건] [액션]

2. 주요 검색 조건 (Options)

조건 설명
-name 파일 이름으로 검색 (대소문자 구분)
-iname 파일 이름으로 검색 (대소문자 무시)
-type 파일 타입으로 검색 (f: 일반 파일, d: 디렉터리)
-size 파일 크기로 검색 (+10M: 10MB 이상, -1k: 1KB 이하)
-mtime 수정 시간으로 검색 (-7: 최근 7일 이내 수정됨)
-user 특정 소유자의 파일 검색

3. 실무 활용 예시

① 이름으로 파일 찾기 (현재 폴더 및 하위 폴더 전체)

find . -name "config.yaml"

② 특정 확장자 파일만 찾아서 개수 세기

find . -type f -name "*.log" | wc -l

③ 100MB가 넘는 대용량 파일 찾기

find /var/log -type f -size +100M

④ 찾은 파일 모두 삭제하기 (주의!)

최근 30일이 지난 로그 파일을 찾아 자동으로 삭제할 때 자주 씁니다.

find /tmp -name "*.tmp" -mtime +30 -exec rm {} \;

4. [팁] find vs locate