본문 바로가기
인프라 (Infrastructure)/운영체제 (OS)

리눅스 find 명령어 사용법 및 실제 예제 활용

by IT 성능 전문 블로그 2025. 9. 3.
반응형

안녕하세요.

루디쿡 아이티입니다~!!

 

이번에 소개드릴 리눅스 명령어는

find

입니다!!

 

 


find 명령어란?

find는 1970년대 초, AT&T 벨 연구소(Bell Labs)에서 개발된 유닉스(Unix) 운영체제의 일부로 처음 등장했습니다. 

정확한 버전은 유닉스 버전 5(Version 5 Unix)로 알려져 있으며, 이는 1974년경입니다.

전설적인 유닉스 개발자 중 한 명인 딕 하이트(Dick Haight)가 만들었습니다. 

 

find의 강력하고 유연한 기능, 특히 -exec 옵션을 통해 검색된 파일에 대해 다른 명령을 바로 실행할 수 있는 기능은 

후대의 많은 검색 도구에 큰 영향을 주었습니다. 

이는 유닉스의 "작은 도구들을 조합하여 강력한 작업을 수행한다"는 핵심 철학을 잘 보여주는 예시입니다.

오늘날 find는 거의 모든 유닉스 계열 운영체제(리눅스, macOS, BSD 등)에 기본적으로 포함되어 있으며, 시스템 관리자와 개발자에게 없어서는 안 될 필수 도구로 자리 잡고 있습니다.


find 명령어 기본 형식

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

 

리눅스 상대경로 절대경로에 대한 설명은 아래 포스팅에 되어있습니다~!

https://rudicookit.tistory.com/39

 


find 명령어 옵션

옵션 (Option)
설명 (Description)
-P
심볼릭 링크 자체를 검색하며, 링크가 가리키는디렉토리 안으로 들어가지 않습니다. (기본 동작)
-L
심볼릭 링크가 있으면 링크가 가리키는 원본 파일 또는디렉토리까지 따라 들어가서 검색합니다.
-maxdepth [숫자]
검색을 진행할 하위디렉토리의 최대 깊이를 지정합니다. (예: -maxdepth 1은 시작 경로와 바로 아래 단계까지만 검색)
-mindepth [숫자]
검색을 시작할 최소디렉토리 깊이를 지정합니다. (예: -mindepth 1은 시작 경로는 제외하고 그 아래 단계부터 검색)

 

 


find 명령어에 필요한 표현식

find 명령어의 꽃입니다.

어떤 형식으로 찾을지, 찾은 후에 무엇을 하는지, 어떻게 조합하는지 등의

정보를 확인해보겠습니다.

 

테스트(Test) 조건 표현식 - 검색 조건
테스트 (Test) 설명 (Description) 예시 (Example)
-name [패턴] 지정된 이름 패턴과 대소문자를 구분하여 일치하는 파일을 찾습니다.
find . -name "report.txt"
-iname [패턴] 지정된 이름 패턴과 대소문자를 구분하지 않고 일치하는 파일을 찾습니다.
find . -iname "report.txt"
-type [타입] 지정된 파일 타입을 찾습니다. (f: 파일, d:디렉토리, l: 링크)
find /home -type d
-user [사용자명] 특정 사용자 소유의 파일을 찾습니다. find / -user root
-perm [권한] 특정 권한(permission)을 가진 파일을 찾습니다. find . -perm 644
-size [+|-]숫자[단위] 파일 크기를 기준으로 찾습니다. (+: 이상, -: 이하)
find /var/log -size +100M
-mtime [+|-]숫자 파일 수정 시간을 기준으로 찾습니다. (단위: 일) find . -mtime -7

 

액션 
액션 (Action) 설명 (Description) 예시 (Example)
-print 찾은 파일의 경로를 화면에 출력합니다. (기본 동작)
find . -name "*.tmp" -print
-ls ls -l 형태로 찾은 파일의 상세 정보를 출력합니다.
find . -size +1G -ls
-exec [명령어] {} \; 찾은 각 파일에 대해 지정된 명령어를 실행합니다.
find . -name "*.log" -exec rm {} \;
-delete 찾은 파일을 삭제합니다.
find ./temp -type f -delete

 

연산자 (Operators) - 조건 조합

 

연산자 (Operator) 설명 (Description) 예시 (Example)
-and 또는 -a 두 조건을 모두 만족해야 합니다. (기본값이므로 생략 가능)
find . -name "*.txt" -a -size -1k
-or 또는 -o 두 조건 중 하나만 만족해도 됩니다.
find . -name "*.jpg" -o -name "*.png"
-not 또는 ! 뒤따르는 조건을 제외합니다.
find . -not -path "./.git/*"

 

 


find 명령어 실제 예시

 

이번에는 최근에 설치한 opentelemetry의 디렉토리가 있는지 확인해보려고 합니다.

우선 명령어 형식을 구성해 보겠습니다.

 

otel을 포함하는디렉토리 찾기!!
구분 내용
목표
otel이라는 이름이 포함된 디렉토리 찾기
전체 명령어
find / -type d -iname "*otel*" 2>/dev/null
검색 대상
/ -type d (루트부터 타입은 디렉토리)
핵심 조건
-iname "*otel*" (이름이 일치하는지 확인)
오류 처리
2>/dev/null (오류 메시지 숨김)

 

 

otel이라는 디렉토리는 sys, etc, var에 있는데요!!

var에는 설치한 적이 없는데..ㅎㅎ 확인해 보니

remotelogin에서 패턴에 걸렸네요!!

 

내용에 otel이 포함되는 것들 전부 찾기!!
구분 내용
목표
otel이라는 텍스트가 포함된 파일 찾기
전체 명령어
find / -type f -exec grep -il "otel" {} + 2>/dev/null
검색 대상 / -type f (루트부터 타입은 파일)
핵심 조건
-exec grep -il "otel" (파일 내용이 일치하는지 확인)
오류 처리
2>/dev/null (오류 메시지 숨김)

 

find 명령어를 수행 중인 1937번 프로세스는 루트부터 시작해서 전체 파일의 내용을 찾고 있습니다!!

 

너무 많은 관계로 파일 안 내용을 확인하는 명령어는 otel이라는 디렉토리를 찾고 그 이후 수행하는 것이 좋습니다~!

 

/etc 아래서 수행 한 결과

해당 파일에서 otel을 찾은 것을 확인할 수 있습니다.

 


 

이것으로 리눅스 명령어 find에 대한 간략한 역사와 소개

명령어 형식, 사용법, 옵션, 실제 예제에 대해서 알아보았습니다.

 

앞으로도 좋은 글로 찾아뵙도록 하겠습니다.

 

 

감사합니다~!!

반응형