geonex.log

[UNIX 명령어 #7] find, grep – 파일 및 텍스트 검색 본문

테크/활용

[UNIX 명령어 #7] find, grep – 파일 및 텍스트 검색

geonex 2025. 6. 20. 16:34
728x90

find, grep 명령어란?

findgrep은 유닉스, 리눅스, macOS 환경에서 파일과 폴더, 텍스트 데이터를 효율적으로 검색할 때 반드시 사용하는 명령어이다.
대량의 파일과 로그, 코드 등에서 원하는 파일이나 특정 내용을 빠르게 찾을 수 있다.

1. find – 파일/폴더 검색

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

find 명령어는 지정한 경로에서 조건에 맞는 파일이나 폴더를 찾아낸다.
파일 이름, 크기, 수정일, 권한 등 다양한 조건으로 검색할 수 있다.

조건/옵션 설명
-name "패턴" 파일명 패턴(와일드카드)으로 검색한다
-type f/d 파일(-type f), 디렉터리(-type d)만 검색한다
-size +100M 100MB보다 큰 파일을 검색한다
-mtime -3 3일 이내 수정된 파일을 검색한다
-exec 명령 {} \; 검색된 파일에 대해 추가 명령을 실행한다
-delete 검색된 파일을 즉시 삭제한다(주의)

2. grep – 파일 내 텍스트 검색

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

grep 명령어는 파일이나 표준 입력에서 특정 문자열(패턴)이 포함된 줄을 검색한다.
여러 파일, 디렉터리 전체, 복잡한 정규표현식 검색도 가능하다.

옵션 설명
-i 대소문자 구분 없이 검색한다
-r 디렉터리 전체를 재귀적으로 검색한다
-n 패턴이 나온 줄 번호도 함께 출력한다
-v 패턴이 없는 줄만 출력한다
--color 검색된 문자열에 색상을 입혀서 표시한다

3. 실전 활용 예시

  • 특정 파일명 검색
    find . -name "*.log" : 현재 폴더와 하위 폴더에서 .log 파일을 모두 찾는다
  • 최근 수정된 파일만 검색
    find /var/log -mtime -2 -type f : /var/log 아래 2일 이내 수정된 파일을 모두 찾는다
  • 특정 단어 포함 줄만 검색
    grep "ERROR" server.log : server.log에서 "ERROR"가 포함된 줄을 모두 출력한다
  • 디렉터리 전체에서 패턴 검색
    grep -r "password" /etc : /etc 아래 모든 파일에서 "password"를 검색한다
  • 줄 번호와 함께 출력
    grep -n "user" config.txt : config.txt에서 "user"가 포함된 줄과 그 줄 번호를 출력한다
  • 검색된 파일에 명령 실행
    find . -name "*.bak" -delete : 현재 폴더에서 .bak 파일을 찾아 즉시 삭제한다(복구 불가)

4. 알아두면 좋은 점

  • find는 복잡한 조건, 대량 파일 검색에도 매우 강력하다
  • grep은 정규표현식 검색, 빠른 텍스트 추출에 적합하다
  • find, grep 조합으로 강력한 자동화/배치 작업이 가능하다
  • macOS, 리눅스 모두에서 거의 동일하게 동작한다

5. 정리

find, grep 명령어는 유닉스 계열 시스템에서 파일 및 텍스트 검색의 핵심 도구이다.
다양한 옵션과 조건을 활용해 수많은 파일/로그/코드에서 원하는 정보를 쉽고 빠르게 찾을 수 있다.
다음 편에서는 파일 다운로드, 네트워크 확인, 프로세스 관리 등 시스템 운영에 유용한 명령어들을 소개할 예정이다.

728x90