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명령어 #리눅스파일검색 #서버관리 #리눅스팁 #쉘스크립트
'생활과 경제' 카테고리의 다른 글
리눅스에서 파일·폴더 용량 확인하는 법: df, du 명령어 완벽 정리 (0) | 2025.07.21 |
---|---|
리눅스에서 파일 내 특정 문자열을 찾는 가장 강력한 도구, grep 완벽 가이드 (0) | 2025.07.21 |
CentOS7 리눅스에 Docker 설치하는 가장 간단한 방법 (실행 결과 포함) (0) | 2025.07.21 |
출산 준비물 리스트, 꼭 필요한 필수 아이템만 한눈에 정리! (1) | 2025.07.21 |
모자동실 뜻과 필요성, 그리고 조리원에서의 하루 일과 및 실제 후기 (0) | 2025.07.20 |