find — 조건으로 파일 찾기
Linux / 파일 및 디스크 관리 / find.html
💬 "find 명령어"
find는 파일 이름만으로 찾는 것이 아니라 수정 시간, 크기, 권한, 소유자 같은 조건을 조합해 찾습니다. 서버 정리와 점검 자동화의 기본 도구입니다.
결과를 다른 명령으로 넘길 수 있어서 “찾아서 지우기·압축하기·목록 만들기”까지 한 줄로 처리됩니다.
- 개념: 지정한 경로 아래를 재귀적으로 돌며 조건에 맞는 파일·디렉터리를 출력합니다.
- 왼쪽 열: 검색 조건식입니다.
-name,-mtime,-size,-type등을 조합합니다. - 오른쪽 열: 검색을 시작할 경로입니다. 좁게 지정할수록 빠르고 위험도 줄어듭니다.
- -exec / -delete: 찾은 결과에 후속 명령을 실행합니다. 잘못 쓰면 되돌릴 수 없으니 먼저 결과만 확인합니다.
자주 쓰는 옵션
| 옵션 | 설명 |
|---|---|
-name / -iname | 이름 패턴 (대소문자 구분 / 무시) |
-type f|d | 파일만 / 디렉터리만 |
-mtime +7 | 7일보다 오래 전에 수정된 것 |
-size +100M | 100MB보다 큰 것 |
-maxdepth 2 | 하위 2단계까지만 탐색 (속도 향상) |
필수 명령어 조합 3가지
find /var/log -type f -name '*.log' -mtime +30— 30일 지난 로그 파일 찾기find /data -type f -size +500M -printf '%s %p\n' | sort -n— 500MB 넘는 대용량 파일을 크기순으로find /var/www/html -type f -name '*.conf' | wc -l— 조건에 맞는 파일 개수만 세기
💬 "실제 사고 사례를 가정한 예시 하나 보여줘"
실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.
1단계 · 조건으로 후보 추리기
먼저 삭제·압축 없이 결과 목록만 확인합니다.
find /var/log -type f -name '*.log' -mtime +30
2단계 · 개수와 용량 확인
대상이 몇 개인지, 합계가 얼마인지 확인해 영향 범위를 파악합니다.
find /var/log -type f -name '*.log' -mtime +30 | wc -l
3단계 · 확인 후에만 실행
목록이 확인되면 압축하거나 삭제합니다. 운영 중 파일은 -delete 대신 압축을 권장합니다.
find /var/log -type f -name '*.log' -mtime +30 -exec gzip {} +
실무에서는 이렇게 씁니다
1. 오래된 로그 자동 정리
상황 — 디스크가 86%까지 차서 30일 넘은 로그를 골라 압축하려 합니다.
find /var/log -type f -name '*.log' -mtime +30 -exec gzip {} +
결과 — 조건에 맞는 파일만 gzip으로 압축되어 용량이 줄고, 최근 로그는 그대로 유지됩니다.
포인트 — 실행 전에 같은 조건으로 목록을 한 번 출력해 대상 개수를 반드시 확인합니다.
2. 설정 파일 전수 점검
상황 — 서버 이관 전에 /etc 아래 설정 파일 목록을 뽑아 변경 이력을 남겨야 합니다.
find /etc -type f -name '*.conf' -printf '%TY-%Tm-%Td %p\n' | sort
결과 — 수정 날짜와 경로가 함께 정렬되어 최근 변경된 설정을 쉽게 찾을 수 있습니다.
포인트 — -printf로 날짜를 앞에 두면 정렬·비교가 쉬워집니다.
3. 권한이 풀린 파일 찾기
상황 — 보안 점검에서 전 세계 쓰기 가능한 파일을 찾아야 합니다.
find /var/www -type f -perm -o+w
결과 — 누구나 수정할 수 있는 파일 목록이 나옵니다. 웹 디렉터리라면 즉시 조치 대상입니다.
포인트 — 정리 후 같은 명령을 다시 돌려 0건이 되었는지 확인합니다.
주의할 점
- find / -delete 같은 명령은 시스템을 망가뜨릴 수 있습니다. 시작 경로를 좁게 지정하고 결과를 먼저 확인합니다.
- -mtime은 24시간 단위, -mmin은 분 단위입니다. 혼동하면 대상이 달라집니다.
- 운영 중인 로그를 삭제하면 프로세스가 파일을 잡고 있어 용량이 반환되지 않습니다.
- 네트워크 스토리지에서 전체 탐색은 I/O 부하가 큽니다. -maxdepth와 대상 경로를 좁힙니다.
실제 실행 화면
조건을 좁혀 찾은 뒤, 두 번째처럼 개수만 세어 영향 범위를 먼저 확인하는 습관이 안전합니다.

실제 운영 중인 서버
이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.