안녕하세요.
루디쿡 아이티입니다~!!
이번에 소개드릴 리눅스 명령어는
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) |
| 찾은 파일의 경로를 화면에 출력합니다. (기본 동작) |
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에 대한 간략한 역사와 소개
명령어 형식, 사용법, 옵션, 실제 예제에 대해서 알아보았습니다.
앞으로도 좋은 글로 찾아뵙도록 하겠습니다.

감사합니다~!!

'인프라 (Infrastructure) > 운영체제 (OS)' 카테고리의 다른 글
| 리눅스 awk 명령어 사용법 및 실제 예제 활용 (특정 문자열 추출) (0) | 2025.09.05 |
|---|---|
| 리눅스 grep 명령어 사용법 및 실제 예제 활용 (0) | 2025.09.05 |
| 리눅스 mv 명령어 사용법 (파일/디렉토리 이동 및 이름 변경) (1) | 2025.08.30 |
| 리눅스 history 명령어 사용법 및 저장위치 기능OnOff (0) | 2025.08.30 |
| 리눅스 cd 명령어 쉽고 재밋는 설명 및 사용법 (절대 상대경로 설명 포함) (2) | 2025.08.29 |