IT개발/Linux & Unix2009. 6. 29. 11:35
find 명령어

파일과 디렉토리를 검색하는 명령어, grep 과 find 를 잘 활용하면 자기가 찾고자 하는 파일을 쉽게 찾을수 있다.

옵션
- name filename : 찾고자 하는 파일명을 검색  ( 사용예 : -name *.txt )
- atime +n : access time 이 n 일 이전인 파일을 찾는다.
- atime -n : access time 이 n 일 이내의 파일을 찾는다.
- mtime +n : n일 이전에 변경된 파일을 찾는다.
- mtime -n : n일 이내에 변경된 파일을 찾는다.
- type x : f - 파일 , d - 디렉토리
- maxdepth n : 지정된 디렉토리에서 n개 하위 디렉토리까지 검색

처리방법
- print : 찾은 파일의 절대 경로를 화면에 출력
- exec cmd {} \; 명령어 구분자로 ; 을 사용하기 때문에 \; 를 항상 붙여주어야 한다.

사용예1> 파일명이 *.log 이고 수정일이 3일 이전 파일을 삭제
- find . -name "*.log" -a -mtime +3 -exec rm {} \;

사용예2> 수정된지 7일 이상된 파일을 삭제한다.
- find /home/log -type f -mtime +7 -exec rm -f {} \;

사용예3> 수정된지 600일 이상된 파일을 ./backup 디렉토리로 이동한다.
- find . -name "local*" -mtime +600 -type f -exec mv {} ./backup \;

사용예4> 하위 2개 디렉토리까지 검색한다. maxdepth = 1 이면 현재 디렉토리만 검색
- find . -name "local*" -mtime +590 -type f -maxdepth 2
 
Posted by 시티락