본문 바로가기
생활과 경제

[리눅스] 파일, 폴더 찾기 명령어 완전 정복 - find 사용법부터 실전 예제까지

by 굿센스굿 2025. 7. 21.
반응형

 

1. find 명령어란?

리눅스에서 find는 파일 시스템 내에서 특정 조건에 맞는 파일이나 디렉토리를 검색하는 명령어입니다. 단순히 파일 이름만 찾는 것부터 파일 크기, 소유자, 변경 날짜 등 다양한 조건으로 검색할 수 있고, 검색된 파일에 추가 명령까지 실행할 수 있습니다.

📌 즉, 단순한 '찾기' 기능을 넘어 자동화와 유지보수에 꼭 필요한 도구라는 의미입니다.


2. find 명령어 기본 문법

find [경로] [옵션] [표현식]
  • 경로 : 검색을 시작할 디렉토리 경로. 생략하면 현재 위치(.)가 기본입니다.
  • 옵션 : 심볼릭 링크 처리 방법이나 디버그 등 부가적인 설정.
  • 표현식 : 검색 조건. -name, -type, -size, -exec 등 다양한 조건을 결합할 수 있음.

예시:

find . -name "*.log"

현재 디렉토리에서 .log가 포함된 모든 파일을 찾습니다.


3. 자주 사용하는 옵션 및 표현식

구분 키워드 설명

파일 이름 -name "*.txt" .txt 확장자 파일 검색
파일 타입 -type f, -type d 일반 파일, 디렉토리 검색
파일 크기 -size +1M, -size -100k 크기 조건 검색
파일 소유자 -user ubuntu 특정 사용자 소유 파일 검색
비어있는 파일 -empty 빈 파일 또는 디렉토리 검색
날짜 기준 -mtime -3, -ctime +5 수정/생성 시점 기준 검색
실행 -exec, -delete 검색 결과에 대해 명령 실행
출력 포맷 -print, -print0 결과 출력 방식 지정

옵션 예시:

  • -P : 심볼릭 링크 무시 (기본값)
  • -L : 심볼릭 링크를 따라감
  • -H : 명령줄에서 지정한 링크는 따라감

4. find 명령어 실전 예제 12가지

① 특정 문자열이 포함된 파일 검색

find . -name "*test*"

test라는 단어가 포함된 모든 파일을 현재 위치에서 검색합니다.


② 확장자로 검색 후 삭제

find . -name "*.bak" -delete

.bak 확장자(백업파일)를 찾아서 모두 삭제합니다.


③ 디렉토리만 찾기

find . -type d

현재 디렉토리 이하 모든 폴더만 출력합니다.


④ 파일만 찾기

find . -type f

일반 파일만 출력합니다.


⑤ 빈 디렉토리 또는 크기 0인 파일 찾기

find . -empty

⑥ 이름에 test가 들어간 빈 파일만 삭제

find . -name "*test*" -empty -delete

⑦ 특정 크기 조건에 맞는 파일 검색

find . -size +1M -size -10M

1MB보다 크고 10MB보다 작은 파일을 찾습니다.


⑧ 최근 3일 이내 수정된 파일 찾기

find . -mtime -3

mtime은 마지막으로 내용이 수정된 시점을 기준으로 합니다.


⑨ 특정 사용자 소유의 파일 찾기

find /home -user ubuntu

/home 경로에서 ubuntu 사용자 소유 파일 검색


⑩ 검색한 파일을 상세 출력하기

find . -name "*.log" -exec ls -lh {} \;

-exec를 통해 검색된 각 파일에 대해 ls -lh 명령을 수행합니다.


⑪ 검색 후 압축하기

find . -name "*.log" -exec gzip {} \;

모든 .log 파일을 찾아서 gzip으로 압축


⑫ 심볼릭 링크 무시하고 검색

find -P /etc -name "*.conf"

-P를 통해 심볼릭 링크를 따라가지 않고 검색


5. 자주 발생하는 오류와 해결법

⚠️ permission denied 오류

/var, /etc 등 시스템 디렉토리를 검색하다 보면 다음과 같은 오류가 나올 수 있습니다.

find: ‘/root’: Permission denied

해결 방법:

sudo find / -name "*passwd*"

sudo를 붙여 관리자 권한으로 실행하면 됩니다.


6. 마무리 및 정리 꿀팁

find는 다음과 같은 상황에서 매우 유용합니다:

  • 수천 개의 로그 파일 중 특정 키워드 포함된 파일만 삭제
  • 오래된 백업 파일을 자동 삭제
  • 특정 유저가 소유한 파일 정리
  • 파일 시스템 정리 자동화 스크립트 작성

🔑 최종 요약

기능 명령어

특정 이름 검색 find . -name "*test*"
특정 확장자 삭제 find . -name "*.log" -delete
디렉토리만 검색 find . -type d
빈 파일 검색 find . -empty
날짜 기준 검색 find . -mtime -7
실행 명령 부착 -exec ls -l {} \;

✍️ 맺으며

find는 리눅스에서 가장 유용하지만 처음엔 어렵게 느껴질 수 있는 명령어입니다. 하지만 위의 예제들만 정확히 이해하고 응용한다면, 수많은 파일을 다루는 작업에서도 빠르고 정확하게 처리할 수 있게 됩니다.

🔁 언제든 복붙해서 쓸 수 있도록 이 글을 북마크 해두시는 것도 추천드립니다!


#Linux #리눅스명령어 #find명령어 #리눅스파일검색 #서버관리 #리눅스팁 #쉘스크립트

 

반응형