find 기본 구조
Bash
find [경로] [조건] [액션]이름·확장자로 검색
Bash
# 파일명 정확히 일치
find /var/log -name "nginx.log"
# 와일드카드 (대소문자 구분)
find . -name "*.log"
# 대소문자 무시
find . -iname "*.Log"
# 특정 디렉터리 제외
find . -name "*.js" -not -path "*/node_modules/*"타입·크기·날짜 필터
Bash
# 파일만 (-type f), 디렉터리만 (-type d)
find /opt -type f -name "*.conf"
# 크기 조건 (100MB 초과 파일)
find /var -type f -size +100M
# 수정된 지 7일 이내
find /home -type f -mtime -7
# 접근한 지 30일 이상 된 파일
find /tmp -type f -atime +30exec로 결과에 명령 적용
Bash
# 찾은 파일 모두 삭제
find /tmp -type f -name "*.tmp" -exec rm {} \;
# 찾은 파일 권한 변경
find /var/www -type f -exec chmod 644 {} \;
# 디렉터리 권한만 변경
find /var/www -type d -exec chmod 755 {} \;
# xargs로 한 번에 처리 (더 빠름)
find . -name "*.log" -mtime +30 | xargs rm -f실무 패턴
Bash
# 빈 파일 찾기
find . -type f -empty
# 빈 디렉터리 찾기 및 삭제
find . -type d -empty -delete
# SUID 비트 설정된 파일 (보안 감사)
find / -perm -4000 -type f 2>/dev/null
# 최근 1시간 내 변경된 파일
find /etc -type f -newer /tmp/checkpoint
# 로그 파일 압축 후 삭제
find /var/log -name "*.log" -mtime +7 -exec gzip {} \; -exec mv {}.gz /archive/ \;주의사항
rm과 조합할 때는 먼저-exec ls -la {} \;로 대상 확인 후 실행/proc,/sys경로는-xdev로 마운트 경계 넘지 않게 제한- 대용량 디렉터리는
find ... | head -20으로 먼저 샘플 확인
편집 안내 · Editorial Note
이 가이드는 AI 도구를 활용해 초안을 구성하고 사람이 명령어·문맥을 검토해 발행했습니다. 운영체제와 도구 버전에 따라 결과가 달라질 수 있으므로 적용 전 공식 문서를 함께 확인하세요. 오류를 발견하시면 이메일로 제보해 주세요.
관련 공식 문서GNU/Linux man 페이지 ↗
질문 & 답변 (Q&A)
이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.