Skip to content

Find 명령

MintState December 24, 2008 at 2:33 PM Views 14031

Find 명령

리눅스 쉘상에서 특정파일이나 디렉토리를 찾는것을 알아보자!
의외로 간단하다.
공통된 문법(?)의 시작은
---------------------------------------
find [경로] -name [파일] -print
---------------------------------------

----------------------------------------------------------------- 
옵션            기능 
----------------------------------------------------------------- 
-atime N        n일 전에 액세스(access)된 파일을 찾습니다. 

-mtime N        n일 전에 수정(modify)된 파일을 찾습니다. 

-newer USR      file보다 늦게 수정된 파일을 찾습니다. 

-size n         n*512 바이트 길이를 가지는 파일을 찾습니다. 

-name WORD      파일 이름으로 검색합니다.  이름에는 메타 문자(*, ?, [])를 사용할 수 있습니다. 

-perm MODE      퍼미션으로 검색합니다. (-perm +2000) 

-type LETTER    파일형식으로 검색합니다.  f는 보통 파일, d는 디렉토리 파일을 의미합니다. 

-user USR       사용자 이름이 usr인 파일을 찾습니다. 

-nouser         파일 소유자 이름이 등록되어 있지 않은 파일을 찾습니다. 

-nogrp          파일 소유 그룹 이름이 등록되어 있지 않은 파일을 찾습니다. 

-exec CMD       명령(CMD)을 실행합니다.  명령행의 끝은 반드시 \; 로 닫아 주어야 합니다.
                현재 찾은 파일이름의 배열을 {}로 입력으로 사용할 수 있습니다.  
                아래 명령은 확장자가 bak인 모든 파일을 찾아 삭제합니다. 
                find ./ -name '*.bak' -exec rm -f {} \; 

-ok CMD         명령을 실행하기 전에 사용자 입력을 기다립니다. 

-print          표준출력(stdout)으로 출력합니다.  기본설정입니다. 

-ptint0         -print와 같이 동작하지만 출력의 끝에 개행문자를 붙이지 않습니다. 

-fprint FILE    -print와 같이 동작하면서 출력을 지정한 파일로 보냅니다. 

-printf FORM    c 스타일의 포맷을 사용하여 출력합니다. 
                man 3 printf 

-ls             ls -dils 형식으로 파일 정보를 자세히 출력합니다. 

-fls            -ls 와 같이 동작하면서 출력을 지정한 파일로 보냅니다. 
-----------------------------------------------------------------

 

약간의 설명을 붙이자면 경로는 절대경로와 상대경로모두 사용할 수 있다.
그럼 아래 설명을 보자

약간의 설명을 붙이자면 경로는 절대경로와 상대경로모두 사용할 수 있다.
그럼 아래 설명을 보자

* 현재 디렉토리에서 특정파일찾기
==> find . -name rsync -print
==>> 현재 디렉토리에서 rsync파일이름을 출력하라!. 만약 없다면 아무것도 출력하지 않는다.
위에서 "."이 부분을 잘보자

* 홈 디렉토리 안에있는 파일찾기
==> find ~/ -name README -print
==>> 현재 자신의 홈 디렉토리와 그 하위모든디렉토리를 대상으로 README파일을 찾아서 그 결과를 보여준다.
                         
* 현재 디렉토리에서 여러파일 찾기
==> find . -name '*.conf' -print
==>> 현재 디렉토리에서 .conf로 끝나는 파일을 파일을 찾아준다.
         
* 디렉토리 찾기
==>find /usr/local -name gnu -type d -print
==>> /usr/local 디렉토리를 기준으로 그 하위 디렉토리인 gnu디렉토리를 찾는다.

Share X Facebook LINE QR code

0 comments

Be the first to comment.