find 명령 사용법

how to use find

find는 특정 디렉터리내에서 recursive하게 어떤 조건을 만족하는 파일이나 디렉토리를 찾아내는 유틸리티이다. 주요 문법은 다음과 같다.

find {시작위치} [조건 표현식] [처리표현식]


조건 표현식은 타입(파일인지 디렉토리인지 링크인지)이나 이름(특정한 패턴 매칭), 날짜, 사이즈 등으로 필터링하여 파일을 찾게 된다. 이에 대해서는 man
페이지를
참고하면 되겠다. 많이 쓰이는 조건 표현식은 다음과 같다.

조건 표현식

  • amin n: n분 이내에 액세스한
  • atime n: n*24시간 이내에 액세스한
  • ctime n: n*24시간 이내에 생성한
  • -name: 패턴일치하는 이름
  • -iname: 대소문자 구문하지 않는 패턴 일치한 이름
  • -type: f, d, l 등의 타입
  • -regex: 이름 매칭을 정규식 패턴으로 함
  • -size: n[cdbkMG] 사이즈가 이정도의

액션

  • -delete : 조건을 만족하면 삭제
  • -exec command ; : 조건을 만족하는 객체가 나타날 때마다 command에 대한 명령을 실행한다. 명령의 인자로 넘겨 줄 때에는 "{}"으로 위치를 지정하여
    줄 수 있으며 반드시 ';'로 종결지어줘야 한다.

특히 많은 양의 파일을 삭제해야 하는 경우, rm 명령을 사용하는 것 보다 -delete 옵션을 사용하는 것이 더 부담이 적다.

예시

  • *.pyc 파일을 찾아서 삭제함: > find . -type f -name "*.pyc" -delete"
  • *.mdown 파일을 찾아서 PDF로 : > find . -type f -name "*.mdown" -exec md2pdf.py {} ';'

';' 로 하거나 \;를 붙여야 한다.