find grep

agnusdei·2025년 5월 3일
0

Offensive Security

목록 보기
4/26

🧰 리눅스 find + grep 명령어 조합 실전 정리

DevSecOps, 보안 자동화, 운영 점검에서 자주 쓰는 형태 위주 정리


📁 find: 파일/디렉토리 탐색 명령어

✅ 기본 구조

find [경로] [조건] [동작]

🔧 자주 쓰는 옵션 (플래그)

옵션설명
-type f일반 파일만 검색
-type d디렉토리만 검색
-name "*.ext"확장자 일치 검색 (대소문자 구분)
-iname "*.ext"대소문자 무시하고 파일명 검색
-mtime -n최근 n일 이내 수정된 파일
-size +100M100MB 초과 파일
-exec 명령 {} \;검색된 파일 각각에 명령 실행
-delete검색된 파일 삭제 (주의!)

🔍 grep: 문자열 검색 명령어

✅ 기본 구조

grep [옵션] "패턴" [파일]

🔧 자주 쓰는 옵션 (플래그)

옵션설명
-i대소문자 구분 없이 검색 (ignore case)
-r하위 디렉토리 포함 검색
-n줄 번호 함께 출력
-v해당 문자열 없는 줄 출력 (not)
-H파일명 출력
-l일치하는 파일명만 출력
--color일치 부분 색상 표시

🧠 -i (ignore case) 예시로 완벽 이해

echo -e "Error\nERROR\nerror" | grep "error"
# → 결과: error

echo -e "Error\nERROR\nerror" | grep -i "error"
# → 결과: Error, ERROR, error (대소문자 무시)
find . -name "readme.txt"
# → 대소문자 구분해서 찾음

find . -iname "readme.txt"
# → README.txt, ReadMe.txt 등도 전부 탐색

🔗 실무에서 자주 쓰는 find + grep 조합 예시


📌 1. .log 파일에서 "error" 검색

find . -type f -name "*.log" -exec grep -i "error" {} \;

✔ 모든 .log 파일에서 "error" (대소문자 무시) 포함된 줄 출력


📌 2. 스크립트에서 위험 명령어 검색

find . -name "*.sh" -exec grep -Ei "curl|wget|eval|base64" {} \;

✔ 쉘 스크립트에서 보안상 민감한 명령어 포함 여부 검사


📌 3. 민감정보(패스워드) 하드코딩 여부 탐지

find . -name "*.py" -exec grep -in "password" {} \;

✔ Python 코드에서 "password" 문자열 있는 줄과 줄 번호 출력


📌 4. 설정파일에서 포트 정보 확인

find /etc -name "*.conf" -exec grep -H "listen" {} \;

✔ 설정 파일에서 listen이 포함된 줄 + 파일명 출력


📌 5. 최근 수정된 로그 파일에서 특정 이벤트 찾기

find /var/log -type f -mtime -1 -exec grep "unauthorized" {} \;

✔ 최근 24시간 내 수정된 파일에서 "unauthorized" 발생 여부 점검


📌 6. .txt 파일 현재 디렉토리로 복사

find . -type f -name "*.txt" -exec cp {} . \;

✔ 하위 경로의 .txt 파일을 현재 디렉토리로 복사
※ 덮어쓰기 주의 → cp -n 사용 권장


📌 7. xargs를 활용한 고성능 검색

find . -name "*.log" -print0 | xargs -0 grep "fail"

✔ 공백/특수문자 포함 파일명도 안전하게 grep 검색


🔥 보너스: 조건 조합 사용

find . -type f \( -name "*.sh" -o -name "*.py" \) -exec grep -i "token" {} \;

.sh 또는 .py 파일 중에서 "token" 포함된 줄 출력


📦 실무 요약 패턴표

작업 목적명령어
로그 에러 확인find . -name "*.log" -exec grep -i "error" {} \;
민감정보 포함 확인find . -name "*.env" -exec grep -i "secret" {} \;
스크립트 위험 명령 점검`find . -name "*.sh" -exec grep -Ei "curleval" {} ;`
최근 변경 로그 분석find /var/log -mtime -1 -exec grep "unauthorized" {} \;
대용량 로그 검색 최적화`find . -name "*.log" -print0xargs -0 grep "fail"`
여러 확장자 파일 조건 검색find . \( -name "*.sh" -o -name "*.py" \) -exec grep -i "token" {} \;

0개의 댓글