[Unix] find 명령어 잘쓰기

개발 노트 2008. 12. 4. 10:42 posted by 무병장수권력자


작성자 : 김문규
최초 작성일 : 2008.12.04

1. find는?
find는 파일 찾는 유틸입니다.

2. 사용법

Usage: find path-list [predicate-list]

검색 조건

 -name filename  파일 이름으로 찾는다.
 -atime +n  access time 이 n일 이전인 파일을 찾는다.
 -atime -n  access time이 n일 이내인 파일을 찾는다.
 -mtime +n  n일 이전에 변경된 파일을 찾는다.
 -mtime -n  n일 이내에 변경된 파일을 찾는다.
 -perm nnn  파일 권한이 nnn인 파일을 찾는다.
 -type x  파일 타입이 x인 파일들을 찾는다.
 -size n  사이즈가 n이상인 파일들을 찾는다.
 -links n  링크된 개수가 n인 파일들을 찾는다.
 -user username  user이름으로 찾는다.
 -group groupname  group 이름으로 찾는다.


처리 방법
 -print  찾은 파일의 절대 경로명을 화면에 출력한다.
 -exec cmd {};  찾은 파일들에 대해 cmd 명령어를 실행한다.


3. 예시
sh# find . -name *test* -print
-> 현재 폴더 아래에 있는 파일 중에 이름에 test를 포함하는 모든 파일을 화면에 출력한다.

sh# find . -type d -print
파일 타입이 d인 파일을 찾아 경로명을 화면에 출력한다.

sh# find . -perm 700 -print
파일 권한이 700인 파일을 찾아준다.

sh# find . \ ( -perm 400 -o -perm 200 ) -print
파일 권한이 400인 파일과 200인 파일을 찾아준다.
(주의 : "\"의 앞뒤에 space 가 반드시 있어야 한다.)

sh# find . -name core -exec ls -l {} \;
이름이 core인 파일을 찾아서 ls -l 한다.

4. 중요한 예시 하나 더

find . -type f | xargs grep "검색어"

검색어를 내용에 포함하는 파일을 찾아서 보여 줍니다.