본문 바로가기

보안기사/실기

find 명령어 정리 및 예시

find : 시스템 내에 있는 파일 중에서 사용자가 원하는 파일을 찾을 때 사용하는 명령어

  1. find 명령어 옵션

find [경로] [expression][action]

○ 경로 : 검색을 할 디렉 터리 지정

○ expression : 검색 시 추가적인 옵션 부여(파일 명 지정, 소유자명 지정 및 파일 크기, 파일 접근권한 등)

  - name : 파일명을 지정

  - type : 파일의 타입을 지정(f : 일반 파일, d : 디렉터리, b : 블럭장치 파일, l : 심볼릭 링크 파일)

  - user : 소유자명 또는 UID를 지정

  - group : 그룹명 또는 GID를 지정

  - size : 파일 크기 지정

  - perm mode : 파일의 접근권한을 지정

  - atime : 파일을 마지막으로 접근한 시간 지정(access time)

  - ctime : 파일의 속성을 변경한 시간 지정(changetime)

  - mtime : 파일의 내용이 마지막으로 변경된 시간 지정(modification time)

○ action : expression에서 취할 행동

ex1 ) SetUID가 포함된 파일 찾기 -> find -perm -4000 

ex2) SetUID만 설정된 파일 찾기 -> find -perm 4000

-> -perm 뒤에 -가 붙으면 SetUID가 붙어 있는 모든 파일을 다 찾는 것이다 보니 SetUID 뿐만 아니라 SetGID가 포함된 모든 파일을 찾는다. 만약 SetUID만 설정된 파일을 찾으려면 -4000 대신 4000으로 검색해야 한다.

ex3) find -perm 4000 -exec ls -al {} \; -> SetUID만 설정된 파일을 찾은 후 그 파일에 대해 ls -al 명령어 실행

  • -perm 4000 : SetUID만 설정된 파일을 검색
  • -exec ls -al {} : 찾은 파일에 대해서 ls -al 명령어 실행 인자로 전달
  • \; : 명령어 마무리

ex4) find . \(-perm -4000 -o -perm -2000 \) -exec ls -al {} \;

  •  . : 현재 디렉터리에서
  • (-perm -4000 -o -perm -2000) : SetUID가 설정된 파일 또는 SetGID가 설정된 파일을 검색(() 때문에 먼저 실행)
  • -exec ls -al {} : 검색 결과로 나온 파일에 대해서 ls -al 명령어 실행 인자로 전달
  • \; : 명령어 마무리

ex5) find -type f -mtime -1 -exec -al {} \;

  • - type f : 파일의 종류 중 일반파일 검색
  • -mtime -1 : 파일 내용이 마지막으로 변경된 시간이 1일 미만인 파일( - : 미만, +: 초과)
  • -exec ls -al {} : 검색결과를 ls -al 명령어 실행 인자로 전달
  • \; : 명령어 마무리

ex6) find -type f -size 4M -exec ls -al {} \;

  •  -type f : 파일 종류가 일반파일 검색
  •  -size 4M : 파일 크기가 4MB인 파일(b : blocks, c: bytes, k : kilobytes, M : megabytes, G : gigabytes)
  •  -exec ls -al {} :  검색결과를 ls -al 명령어 실행 인자로 전달
  •  \; : 명령어 마무리

ex7) find . -name "se*.c" -print

  •  . : 현재파일에서
  •  -name "se*.c" : 파일명이 se로 시작하는 c 파일을
  •  -print : 출력한다