Colors of Ray+Hue'

[shell] find 사용법

shell2015. 11. 3. 03:48

간단한 find 사용법 메모


1. /home/backup 폴더에서

2. 서브디렉토리 폴더 내부를 제외하고 해당 폴더만
3. *.tar.gz 파일과 *.sql 파일이 생성된지(수정된지) 일주일 지난 파일을 찾아서
4. 다만 origin.tar.gz 파일과 origin.sql 파일은 삭제 금지(삭제 대상에서 제외)
5. 삭제

-maxdepth n
서브디렉토리를 들어가서 검색하는 범위를 지정 할 때에 사용합니다.
해당 폴더만 검색하는 경우는 -maxdepth 를 1로 주시면 됩니다.

-type
f는 파일 d는 디렉토리만 검색합니다.

-name
해당 파일명/디렉토리명에 대해서 검색합니다.
두개 이상의 파일 이름을 지정할 때에는 or 나 not 옵션을 붙이시면 됩니다.
or 는 -o 옵션을 주시면 되고, not 은 ! 옵션을 주시면 됩니다.
예를 들어 origin.tar.gz 와 origin.sql 를 검색하고자 하는 경우
-name 'origin.tar.gz' -o -name 'origin.sql'
origin.tar.gz 와 origin.sql 를 제외하고 검색하고자 하는 경우
! -name 'origin.tar.gz' ! -name 'origin.sql'
로 옵션을 지정하시면 됩니다.

-mtime n
n*24 시간 이전에 수정된 파일들에 대해 검색합니다.

-exec [명령어] {}
검색결과를 {} 안에 넣어서 해당 명령어를 수행합니다.

따라서 질문자님께서 말씀하신 내용을 수행하시려면 다음과 같이 실행하시면 됩니다.
find /home/backup/ -maxdepth 1 -type f ! -name 'origin.tar.gz' ! -name 'origin.sql' -mtime +7 -exec rm {} \;

출처:http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=10302&docId=221797336&qb=66as64iF7Iqk66qF66C57Ja0IOyYteyFmCDrp4jsnbTrhIjsiqQg65GQ6rCc&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=SBPWGdoRR1ossbayg1lsssssstG-433712&sid=9qJfBk%2BkUtwT6RUfzv87Ng%3D%3D