리눅스 grep, find 명령어 활용 예제

리눅스 시스템에서 파일을 검색하고 데이터를 처리하는 것은 개발자와 시스템 관리자에게 필수적인 기술입니다. 이 글에서는 grepfind 명령어를 사용하여 파일을 효율적으로 찾고 내용을 검색하는 방법을 알아보겠습니다.

명령어

grep 명령어 기초

grep은 파일 내에서 특정 패턴이나 문자열을 검색할 때 사용하는 명령어입니다.

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

기본 검색

제일 기본으로 파일에서 단어 ‘example’을 검색하려면 아래처럼 입력할 수 있습니다.

grep 'example' filename.txt

정규 표현식 사용

정규 표현식을 사용하여 더 복잡한 패턴을 검색할 수 있습니다. 예를 들어, ‘ex’로 시작하는 모든 단어를 찾으려면 아래처럼 입력하시면 됩니다.

grep '^ex' filename.txt

find 명령어 기초

find 명령어는 파일 시스템을 탐색하여 파일이나 디렉토리를 찾는 데 사용됩니다.

find [경로] [옵션] [표현식]

파일 이름으로 검색

제일 기본으로 특정 이름의 파일을 찾으려면 아래처럼 입력하시면 됩니다.

find / -name 'filename.txt'

파일 유형으로 검색

특정 유형의 파일만 찾으려면 -type 옵션을 사용합니다. 예를 들어 디렉토리를 찾으려면 -type d를 입력하시면 디렉토리만 찾을 수 있습니다.

find / -type d

예제

grep과 find는 다양한 옵션들이 있는데 위에서 기초 명령어를 익히셨다면 아래 예제들을 통해 옵션의 종류와 실전 사용법을 알려드리겠습니다.

grep: 파일 내 특정 패턴의 반복 횟수 찾기

파일 내에서 특정 문자열이 몇 번 반복되는지 확인하려면 -c (count) 옵션을 사용합니다.

grep -c 'pattern' filename.txt

grep: 대소문자 구분 없이 검색

대소문자를 구분하지 않고 검색하려면 -i (ignore case) 옵션을 사용합니다.

grep -i 'example' filename.txt

find: 수정된 시간 기준으로 파일 검색(-mtime)

특정 시간 이후에 수정된 파일을 찾으려면 -mtime 옵션을 사용합니다. 아래 예제는 24시간 이내에 수정된 파일을 찾습니다.

find / -mtime -1

find: 파일 크기 기준으로 검색

특정 크기 이상의 파일을 찾으려면 -size 옵션을 사용합니다. 아래 예제는 50MB 이상의 파일을 찾습니다.

find / -size +50M

find, grep 동시 사용 예제

find 명령어로 파일을 찾은 후, grep을 사용하여 그 파일들 중 특정 패턴을 포함하는 파일만을 필터링할 수 있습니다.

특정 패턴을 포함하는 파일 찾기

시스템 전체에서 ‘pattern’ 문자열을 포함하는 모든 파일을 찾기

find / -type f -exec grep -l 'pattern' {} \;

특정 패턴을 포함하는 파일의 내용 출력하기

특정 디렉토리 내에서 ‘pattern’을 포함하는 모든 파일을 찾아 그 내용을 출력하려면 다음과 같이 합니다:

find /path/to/directory -type f -exec grep 'pattern' {} +

특정 패턴을 포함하고 수정된 날짜가 오래된 파일 찾기

특정 패턴을 포함하면서, 일정 기간 이상 수정되지 않은 파일을 찾으려면 -mtime과 함께 사용합니다.

아래 예제는 30일 이상 수정되지 않은 파일 중 ‘pattern’을 포함하는 파일을 찾는 명령어입니다.

find / -type f -mtime +30 -exec grep -l 'pattern' {} \;

특정 사용자에 의해 수정된 파일 중 특정 패턴 찾기

특정 사용자에 의해 수정된 파일 중에서 ‘pattern’을 포함하는 파일을 찾으려면 -user 옵션을 사용합니다.

find / -type f -user username -exec grep -l 'pattern' {} \;

특정 권한을 가진 파일 중 특정 패턴 찾기

특정 권한 설정을 가진 파일 중에서 ‘pattern’을 포함하는 파일을 찾으려면 -perm 옵션을 사용합니다:

find / -type f -perm 644 -exec grep -l 'pattern' {} \;

특정 크기를 초과하는 파일 중 특정 패턴 찾기

특정 크기를 초과하는 파일 중에서 ‘pattern’을 포함하는 파일을 찾으려면 -size 옵션을 사용합니다:

find / -type f -size +2M -exec grep -l 'pattern' {} \;

마무리

위 예제들로 grep과 find 명령어를 익히셨으면 좋겠습니다. 실전에서는 findgrep을 결합하여 사용하는 경우가 많으니 실제 작업 환경에서 이러한 명령어들을 사용하여 원하는 파일을 효과적으로 찾고 필요한 데이터를 추출해보세요. 감사합니다.