/엔지니어/Linux / Shell/find 명령어 실전 완전 가이드
Linux / Shell초급UbuntuDebianCentOSRHELfind파일검색linux

find 명령어 실전 완전 가이드

파일 검색부터 조건 필터링, exec 연계 삭제·변환까지 find 명령어를 현업에서 바로 쓸 수 있도록 정리합니다.

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 +30

exec로 결과에 명령 적용

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 으로 먼저 샘플 확인
#find#파일검색#linux#shell#실전
편집 안내 · Editorial Note

이 가이드는 AI 도구를 활용해 초안을 구성하고 사람이 명령어·문맥을 검토해 발행했습니다. 운영체제와 도구 버전에 따라 결과가 달라질 수 있으므로 적용 전 공식 문서를 함께 확인하세요. 오류를 발견하시면 이메일로 제보해 주세요.

관련 공식 문서GNU/Linux man 페이지

질문 & 답변 (Q&A)

이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.