find는 「조건에 맞는 파일을 디렉토리 트리에서 찾는」 명령.
이름·크기·시각·권한·종류 등 거의 모든 조건으로 검색 가능.
옵션이 많아 학습 곡선 있지만 한 번 익히면 매우 강력.
기본.
find /path -name "*.log" — 그 경로 아래의 모든 .log 파일.
find .
-name "file.txt" — 현재 폴더 아래 file.txt 찾기.
와일드카드는 따옴표로 감싸기 — 안 그러면 셸이 미리 풀어버림.
조건.
-type f(파일)·d(디렉토리)·l(심링크).
-size +1G(1GB 초과)·-1k(1KB 미만).
-mtime -7(7일 내 수정)·+30(30일 전).
-user alice.
-perm 644.
여러 조건 -a(and)·-o(or)로 결합.
액션.
-print(기본, 출력)·-delete(삭제)·-exec(명령 실행).
find .
-name "*.tmp" -delete — .tmp 파일 모두 삭제.
find .
-name "*.txt" -exec wc -l {} \; — 각 파일에 wc -l 실행({}는 파일명 자리).
모던 대안.
fd(또는 fd-find).
사용법 더 단순, 색상, 빠름, .gitignore 인식.
fd "\.log$" /var/log 같이 직관적.
rg와 함께 모던 도구 두 축.
옛 find가 익숙하면 그대로, 새로 입문이면 fd 추천.
한 줄 요약
find는 파일 검색의 만능.
-name·-type·-size·-mtime·-perm 조건, -print·-delete·-exec 액션.
매우 강력하지만 학습 비용.
모던 대안 fd가 더 단순·빠름·gitignore 인식.
더 알아볼 것
- find -exec vs xargs 차이
- find의 -prune 활용
- fd 사용법 정리