C.W.K.
Stream
Lesson 10 of 12 · published

find — 파일 시스템 검색

~15 min · find, search, exec

Level 0창 구경꾼
0 XP0/95 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

파일 검색의 스위스 군용 칼

find 는 디렉터리 트리를 걸으면서 각 항목에 test 와 action 을 적용해. 문법 한 번 익히면 '어디에 있는 파일인데...' 류 질문 거의 다 답해.

모양

find <path> <tests> <action>. Path 생략 시 . (BSD 엔 명시 필요, macOS 는 사실상 둘 다 OK). Test 가 필터, default action 은 -print.

자주 쓰는 test

  • -name 'pattern' — basename glob 매치. 인용 필수!
  • -iname 'pattern' — 대소문자 무시.
  • -type f — 일반 파일. d 디렉터리, l symlink.
  • -size +10M — 10 MB 초과. -1k, +500c (글자).
  • -mtime -7 — 최근 7 일 안. -mmin -60 분 단위.
  • -empty — 빈 파일 / 디렉터리.
  • -maxdepth 2 — 더 깊이 안 들어감. 성능 위해 다른 test 보다 먼저 두기.

action

  • -print — default. 경로 출력.
  • -delete — 매치 삭제. 먼저 -print 로 검증!
  • -exec cmd {} \; — 매치마다 cmd 한 번.
  • -exec cmd {} + — 매치를 묶어서 한 번에. xargs 내장 버전.

실전 one-liner

  • 홈의 모든 Python 파일: find ~ -name '*.py'
  • 100MB 초과 파일: find / -type f -size +100M 2>/dev/null
  • 오래된 로그 삭제: find /var/log -name '*.log' -mtime +30 -delete
  • grep 으로 넘기기: find . -name '*.go' -exec grep -l TODO {} +

인터랙티브 검색은 modern-tools 트랙의 fd 가 더 빠르고 친절해 — 하지만 find 는 모든 Unix 박스에 깔려 있어.

Code

홈의 큰 파일 한눈에·bash
find ~ -type f -size +100M 2>/dev/null -exec ls -lh {} +
# Or sort by size after
find ~ -type f -size +100M 2>/dev/null -exec du -h {} + | sort -h
찾고 → 실행 (안전하게)·bash
# 1. Print to verify
find /var/log -name '*.gz' -mtime +30 -print
# 2. Confirmed? Then delete.
find /var/log -name '*.gz' -mtime +30 -delete

External links

Exercise

최근 1 시간 내 수정된 홈 파일: find ~ -type f -mmin -60. 프로젝트의 Python 파일: find ./project -name '*.py' -type f. 그 다음 두 단계 패턴 연습: find ./tmp -name '*.tmp' -print 로 검증, 이어서 ... -delete.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.