find
쉽게 말하면
조건에 맞는 파일을 폴더 안쪽까지 직접 다 뒤져서 찾는 명령이에요. 이름, 크기, 고친 날짜, 주인 같은 조건을 줄 수 있어요. 직접 뒤지니 느리지만 지금 상태를 정확히 찾아요.
시험용 정의
find는 지정한 디렉터리부터 하위를 모두 뒤지며 이름·종류·크기·시간·소유자·권한 같은 조건에 맞는 파일을 찾고, 찾은 파일에 명령을 실행(-exec)할 수도 있다. 실제 디스크를 뒤지므로 느리지만 항상 정확하다.
비유로 이해하기
창고를 한 칸씩 직접 돌며 "빨간 상자, 30일 넘은 것, 1kg 이상"인 물건을 찾는 것이다. locate는 반대로 미리 만든 재고 목록표만 뒤진다.
시험에 이렇게 나와요
- find 경로 -name, -type f/d, -size, -perm -4000, -user, -mtime
- 찾은 파일 처리 -exec 명령 {} ;
- +N / -N / N 의미 (초과·미만·정확히)
- -exec {} \; 형식 해석
- SetUID 파일 찾기 → find / -perm -4000
- find와 locate의 차이
1차 출제기준 · 공개 기출 없음
확인 문제
Q1. find /tmp -mtime +30은 어떤 파일을 찾을까?
- 정확히 30일 전에 수정된 파일
- 30일 이내에 수정된 파일
- 수정된 지 30일이 넘은 파일
- 30MB보다 큰 파일
정답 보기
3번 수정된 지 30일이 넘은 파일
find의 숫자 조건에서 +N은 N보다 큼, -N은 N보다 작음, 그냥 N은 정확히 N이다. -mtime +30 = 수정한 지 30일 초과한 오래된 파일. 오래된 임시 파일 정리에 자주 쓴다.
Q2. 7일 이내에 수정된 파일을 찾는 조건은?
- -mtime +7
- -mtime 7
- -atime -7
- -mtime -7
정답 보기
4번 -mtime -7
-mtime -7이다. -7은 7일 미만(이내), +7은 7일보다 오래됨, 7은 정확히 7일 전이다. -atime은 접근 시각 기준이다.
Q3. /home에서 소유자가 kim인 파일을 찾는 명령은?
- find kim /home
- find /home -user kim
- find /home -owner kim
- find /home -uid kim
정답 보기
2번 find /home -user kim
find /home -user kim이다. -user 뒤에 사용자 이름을 쓴다. -uid는 이름이 아니라 UID 숫자를 받는다.
Q4. find / -perm -4000이 찾는 것은?
- SetUID가 설정된 파일
- 권한이 정확히 4000인 파일
- 4000바이트 파일
- 4000일 된 파일
정답 보기
1번 SetUID가 설정된 파일
-perm -모드 = 그 비트를 포함하는 파일.
헷갈리기 쉬운 O·X
find의 -size +10M은 10MB 미만의 파일을 찾는다.
정답 보기
X +는 초과. 미만은 -.
-exec 명령 끝에는 \; 를 붙여야 한다.
정답 보기
O 맞는 설명이다.
find는 미리 만든 데이터베이스를 검색하므로 매우 빠르다.
정답 보기
X 그건 locate. find는 실제로 디스크를 뒤진다.