메뉴 닫기

리눅스 find 명령 사용 방법

find 명령어 소개

find는 파일을 찾는 명령입니다.

 

형식

find [탐색경로][옵션][표현식][검색 후 작업]
  • 탐색 경로
    • 탐색 경로를 생략하면 현재 디렉토리부터 검색을 시작합니다.
    • 읽기 권한이 없는 디렉토리는 건너뜁니다.
    • sudo로 루트 권한을 얻으면 모든 디렉토리를 검색할 수 있습니다.
    • 루트 디렉토리부터 시작해서 모든 파일을 검색하려면 /를 명시합니다.
    • 탐색 경로에 .를 입력하면 현재 디렉토리 및 하위 디렉토리를 검색합니다.
    • ~사용자ID : 해당 사용자ID 홈 디렉토리 이하를 검색합니다.

 

  • 검색 옵션
옵션 검색 대상
-perm 파일 권한
-type 파일 종류
-size 파일 크기
-links 링크 수
-user 사용자 ID
-atime 특정 기간 동안 접근하지 않은 파일
-mtime 특정 기간 동안 수정되지 않은 파일

 

  • 검색 후 작업
    • -print : 찾은 파일의 절대 경로명을 화면에 출력합니다.
    • -exec cmd {}; : 찾은 파일들에 대해 cmd 명령을 실행합니다.

 

  • 연산자

여러 조건을 동시에 사용하기 위해 연산자를 이용합니다.

  • ( ) : 괄호( )안의 연산이 먼저 수행됨.
  • ! expr : expr 이 거짓일때 참, 참일때 거짓이 됨.
  • -not expr : 위의 ! expr 과 동일함 (POSIX 호환용)
  • expr1 expr2 : AND 의 의미. expr1 이 거짓일 때에는 expr2 는 평가되지 않음
  • expr1 -a expr2 : ‘expr1 expr2’ 와 같음
  • expr1 -and expr2 : ‘expr1 expr2’ 와 같음 (POSIX 호환용)
  • expr1 -o expr2 : OR 의 의미. expr1 이 참일 경우 expr2 는 평가되지 않음.
  • expr1 -or expr2 : ‘expr1 -o expr2’ 와 같은 의미

출처 : WEBDIR

 

용례

루트 디렉토리부터 시작해서 파일 이름이 test인 파일을 검색합니다.

sudo find / -name test

 

-name은 파일 이름으로 검색하는 옵션입니다.

find -name test

 

루트 디렉토리에서 시작해서 디렉토리 이름이 ex로 시작하는 모든 디렉토리 찾기

find / -name "ex*" -type d

 

abc라는 사용자 디렉토리 이하에 존재하는 모든 docx 파일을 검색하여 컨펌없이 삭제합니다.

find ~abc -name "*.docx" -exec rm -f {} \;

 

참고

댓글 남기기