← 아티클 목록

find·grep 사용법 — 파일과 로그 빠르게 찾기

2027-07-19#linux#find#grep

서버에서 "그 파일 어디 있더라", "이 에러가 어느 로그에 찍혔지"는 매일 나오는 질문입니다. find파일 자체를 조건으로 찾고, grep파일 안의 내용을 찾습니다. 이 둘만 손에 익으면 추측 없이 곧장 좁혀갈 수 있습니다.

find — 파일을 조건으로 찾기

기본형은 find <경로> <조건>입니다. 이름, 시간, 크기로 거릅니다.

로컬 터미널
find /var/log -name "*.log"          # 이름 패턴
find /etc -name "*.conf" -type f     # 일반 파일만
find /app -mtime -1                  # 최근 1일 내 수정
find /var/log -size +100M            # 100MB 초과

-name은 대소문자를 구분합니다. 무시하려면 -iname을 씁니다. 와일드카드(*)는 셸이 먼저 해석하지 않도록 따옴표로 감쌉니다.

grep — 내용 안에서 패턴 찾기

로컬 터미널
grep "ERROR" /var/log/app.log        # 한 파일에서
grep -r "timeout" /var/log/          # 디렉터리 재귀 검색
grep -rn "NullPointer" /app/logs     # 줄 번호까지(-n)
grep -i "failed" app.log             # 대소문자 무시(-i)

로그를 추적할 때 자주 쓰는 조합은 매칭 줄의 앞뒤 맥락을 같이 보는 것입니다.

로컬 터미널
grep -B2 -A5 "Exception" app.log     # 앞 2줄, 뒤 5줄
grep -c "ERROR" app.log              # 매칭 건수만

자주 쓰는 옵션 정리

명령옵션의미
find-name / -iname이름(대소문자 구분/무시)
find-mtime -1최근 1일 내 수정
find-size +100M100MB 초과
grep-r / -n재귀 / 줄 번호
grep-i / -c대소문자 무시 / 건수
grep-B / -A앞/뒤 맥락 줄

find와 grep 조합

find로 대상 파일을 추린 뒤 그 안에서 grep으로 내용을 찾으면 강력합니다. -exec 또는 xargs로 넘깁니다.

로컬 터미널
# 최근 1일 내 로그에서만 ERROR 찾기
find /var/log -name "*.log" -mtime -1 -exec grep -l "ERROR" {} +

# 파일명에 공백이 있어도 안전하게
find /app -name "*.log" -print0 | xargs -0 grep "timeout"

grep -l은 매칭된 파일 이름만 출력합니다. "어느 파일에 있나"를 먼저 가린 뒤 그 파일을 자세히 보는 흐름이 빠릅니다.

체크리스트

로컬 터미널
find <경로> -name "패턴"              # 이름으로 파일 찾기
find <경로> -mtime -1 -size +100M     # 시간·크기 조건
grep -rn "패턴" <경로>                # 재귀+줄번호로 내용 찾기
grep -B2 -A5 "에러" <파일>            # 매칭 앞뒤 맥락
find ... -exec grep -l "패턴" {} +    # 둘을 조합

find·grep을 직접 쳐보며 파일·로그를 추적하는 실습은 리눅스 트랙에서 회원가입 없이 무료로 익힐 수 있습니다.