공부/정보보안기사

<정보보안기사> 1. 시스템 이론 - 파일 검색(find) + 명령어 모음

Richard_Hoon 2024. 11. 17. 22:49
반응형

 

파일 검색(find) 개요

 

 - find 명령은 시스템에서 특정 조건에 맞는 파일이나 디렉토리를 찾기 위해 사용하는 명령어

 - 파일이름 , 크기, 수정시간, 소유자 , 권한 등 다양한 기준으로 검색 가능

 - 찾은 파일을 바로 처리하거나 다른 명령에 연결하여 활용할 수 있음

 

 

입력 문법

 

문법    find 경로 표현 액션
표현
옵션
  `-type 파일 종류`    검색할 파일 종류 지정
   -type f : 정규 파일 / -type d : 디렉터리 파일 / -type l : 심볼릭 링크
   `-name 파일 이름`    검색할 파일 이름
   -name hoony / -iname hoony (대소문자 구분 없음)
   `-size ±파일 크기`    검색할 파일 크기 지정 (+ : 이상 / - : 이하)
   -size +10M : 10MB 이상 / -size -1k : 1KB 미만
   `-mtime ±수정시간`    검색할 modification time 지정 (+ : 이상 / - : 이하)
   -mtime +7 : 7일 초과 / -mtime -3 : 3일 미만
   `-atime ±수정시간`    검색할 access time 지정 (+ : 이상 / - : 이하)
   `-ctime ±수정시간`    검색할 change time 지정 (+ : 이상 / - : 이하)
   `-user 소유자`    검색할 소유자 지정 : -user root
   `-perm 권한`    검색할 파일의 접근권한을 지정(8진수) : -perm -u+x

 

경로 문법 설명
`find / 표현`    최상의 루트 디렉터리(/)부터 전체 시스템, [표현]에 맞는 파일 검색
`find . 표현`    현재 디렉터리(.)부터 하위 디렉터리, [표현]에 맞는 파일 검색

 

액션 문법 설명
   `-exec`      검색한 파일에 대한 명령 실행
   `-exec ls -al {} \;`      검색한 파일에 대해 ls -al 명령을 수행함

 

 

 

find 문법 실습 예시

 

find . -name "*.log" -mtime +30 -size +1M -exec rm {} \;

 

현재 디렉터리 및 하위 디렉터리`.`에서 30일 이상 된`-mtime +30` 모든 .log 파일`*.log` 중 크기가 1MB이상`-size +1M`인 파일을 찾아서 삭제`rm`

 

find -mtime 30 -size 1M

 

정확히 30일`-mtime 30`이고, 크기가 정확히 1MB인 파일`-size 1M`을 찾기 >> +와 -와 차이 이해

 

find /etc -user root -perm -u+x

 

`/etc` 디렉터리에서 소유자가 `root`이고 user 실행 권한`-u+x`이 있는 파일 찾기

 

find / \( -nouser -o nogroup \) -exec ls -al {} \;

 

최상의 디렉터리부터 모든 파일에 대해`/` 소유자가 존재하지 않거나`-nouser` 소유그룹이 존재하지 않는`-nogroup` 파일을 검색하고 그 결과에 대해 ls -al 명령어를 실행`-exec ls -al`함.

 

find /var/log -name "*.log" -print > log_list.txt

 

`/var/log/` 디렉터리에서 확장자가 `.log`인 모든 파일을 찾아 `log_list.txt`라는 파일로 결과를 저장함.

 

 

주의사항

 

예시 설명
`-perm 600` user가 6(rw), group과 others는 권한이 없는(0) 파일만 찾음
`-perm -600` user가 6(rw), group과 others는 권한이 없는(0) 파일을 포함해서 찾음

 

* 나중에 문제를 풀어보니 -를 썼었나 안 썼었나 헷갈림

 

반응형