2013년 12월 19일 목요일

find 명령어 option 정리

Unix/Linux에서 가장 많이 사용하는 find 명령어의 option을 정리해본다.

-atime n : n일 전의 access 된 파일
-mtime n : n일 전의 수정된 파일
-newer [file] : file 보다 최근의 수정된 파일
-size n : n * 512바이트의 길이를 갖는 파일
-fstype [filesystem] : 파일 시스템 종류
-name [pattern] : 파일 이름 검색
-perm p : 파일 접근 퍼미션이 p인 경우
-user [user] : 파일 소유권이 user인 파일
-group [group] : 파일 그룹이 group인 파일
-nouser : 파일 소유자가 /etc/passwd에 없는 경우
-nogroup : 파일 소유 그룹이 /etc/group에 없는 경우
-uid n : 파일 uid가 n인 경우
-gid n : 파일 gid가 n인 경우

위의 option외에도 man page를 이용하면 다양하게 많은 여러 option을 확인 할 수 있다.
또한 option을 차례로 기술하여 AND, OR 연산을 적용하여 검색도 가능하다.
OR 연산은 -o option 또는 ( )를 이용하여 그룹을 지어 적용할 수도 있다. 이밖에도 NOT 연산도 가능하며 option 앞에 '!' 부호를 달아 주면 된다.

그외에도 지원되는 내부 옵션들은 아래와 같다.

-print : 대응되는 파일의 경로명을 출력
-ls : 대응되는 파일에 대한 긴 디렉토리 목록을 출력
-exec commands : 대응되는 파일에 대해 commands 명령 수행
-ok commands : 파일에 대한 commands 명령 수행 전에 입력 대기 상태
-xdev : 검색 시작 디렉토리가 속해 있는 파일 시스템에 대해서만 검색 제한
-mount : IRIX와 SCO UNIX에서 -xdev 옵션
-prune : 서브 디렉토리는 검색을 하지 않음
-print option은 근래는 기본으로 들어가기 때문에 굳이 붙일 필요는 없고, -exec와 -ok option은 사용시 마지막에 반드시 \; 구문으로 마감해야 한다.


Example)

1) 검색한 파일을 지움
[ root@alex:/ ] # find ./ -name *.* -exec rm -rf {} \;

2) 파일 크기가 20메가바이트 이상이며 30일 이상 동안 수정되지 않은 파일을 찾음
[ root@alex:/ ] # find / -type f -size +20480 -mtime +30 -ls

3) 모든 setuid, setgid를 검색
[ root@alex:/ ] # find / -type f \( -perm -4000 -o -perm -2000 \)
[ root@alex:/ ] # find / -type f \( -perm -4000 -o -perm -2000 \) | diff - setuidlist

댓글 없음:

댓글 쓰기