홈/엔지니어/Linux / Shell/find 명령어 실전…
Linux / Shell초급UbuntuDebianCentOSRHELfind파일검색linux

find 명령어 실전

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

목차
  1. find 기본 구조
  2. 이름·확장자로 검색
  3. 타입·크기·날짜 필터
  4. exec로 결과에 명령 적용
  5. 실무 패턴
  6. 주의사항

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)

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