find 명령어 정리 및 예시
find : 시스템 내에 있는 파일 중에서 사용자가 원하는 파일을 찾을 때 사용하는 명령어
- 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 : 출력한다