find 03
OS/리눅스 & 유닉스 2011. 11. 24. 11:03find [찾을 디렉토리경로] [찾기옵션] [찾은후행할 작업]
[옵션]
-empty : 비어있는 파일을 찾는다.
-uid UID : 지정된 UID를 갖는 파일을 찾는다.
-gid GID : 지정된 GID를 갖는 파일을 찾는다.
-group 그룹명 : 지정된 group을 가진 파일을 찾는다.
-name : 지정된 형식의 패턴을 가지는 파일을 찾는다.
-newer : 지정된 파일 이후에 생성된 파일을 찾는다.
-perm : 지정된 퍼미션을 가진 파일을 찾는다.
-used 일자수 : 최근 n일 이후에 변경된 파일을 찾는다.
-user : 지정된 파일을 소유하고 있는 소유자의 모든 파일을 찾는다.
-size : 지정된 크기를 갖는 파일찾는다
[작업]
-print : 찾은 파일리스트를 보여준다.
-exec “수행명령어” : 검색된 파일을 대상으로 “수행명령어”(쉘명령어)를 실행한다.
------------------------------------------------------------------------------------
find / -uid 119 -print
- 특정uid 로찾기
find / -user cdral -print
- 특정 아이디로 찾기
find /home/cdral -name *.txt -print
- 특정디렉토리에서 특정파일찾기
find /home/cdral -name *.txt -exec rm -f {} \;
- 특정디렉토리에서 특정파일찾아서 지우기
-exec rm -f {} 의미가 찾은파일을 {} 하나씩 대입하여 삭제한다는뜻 ( {} \; 공백주의)
find / -user cdral -exec ls -al {} \;
- 특정유저로된 파일찾기
find /var -size +102400k -exec ls -al {} \;
- 특정용량 이상되는 파일찾기
find /home/cdral -perm 777 -exec ls -l {} \;
- 특정퍼미션 파일찾기
find / -used 3 -exec ls -l {} \;
- 지정된 일자 3일전부터 현재까지 변경된적이 있는파일 찾기
find /home/cdral -type d -exec ls -ll {} \;
- 특정디렉토리안에 모든 디렉토리 찾기
find /usr/bin -type l -exec ls -al {} \;
- 특정디렉토리안에 모든 링크파일 찾기 보안점검시체크
find / -user root -perm 4000 -print
- root 소유의 setuid파일 찾기 보안점검시체크
find /dev/ -type f -exec ls -l {} \;
- /dev 디렉토리내 일반파일(-type f)찾기 보안점검시체크
find / -name .rhost -exec ls -l {} \;
- .rhost 파일 찾기 보안점검시체크
find / -nouser -o -nogroup -print
- 소유자와 소유그룹이 없는 파일찾기 -o 는 OR의 역할
find /home -type f -exec grep -i "문자" /dev/null {} \;
- 특정문자를 포함한 파일찾기
find ./ -name "*.txt" -print -exec grep -n "test" {} \;
- 확장자가 txt인 파일들을 찾은다음 test라는 text를 포함하는 문자의 행 까지 출력
find /home -size +20000c -print
- /home에서 파일의 크기가 20,000바이트 이상인 것만 찾아라
find /home -size 10000c -print
- /home에서 파일의 크기가 10000바이트 인것만 찾아라
find /usr/lib -name "m*.c" -print
- /usr/lib에서 m*.c 인 것을 모두 찾아라
find /home -name core -print exec rm {} \;
-/home 밑에 core 파일을 찾아 이를 삭제 하시오.
find / -perm 04000 -user root exec ls -l {} \;
-owner가 root이고 SETUID를 가지는 파일을 모두 찾아라
find / -ctime -3 -print
- 최근 3일 이내에 쓰여진 파일을 찾아라
find / -ctime -3 -size +10000c -exec ls -l {} \;
- 최근 3일 이내에 쓰여지고, 10,000바이트 이상인 파일이나, 디렉토리를 찾아라.
find . -name "*.gz" -exec gunzip {} \;
- unzip을 사용해서 여러개의 zip 을 동시에 풀기