find 명령어
┌────────────────────────┐
│ find 대상 _ 디렉토리 표현식 │
│ ( 검색_조건 처리_형식 ) │
└────────────────────────┘
-> find 명령어는 명령어상에 지정한 검색조건과 일치하는 화일들을 지정한 디렉토리내에서 검색한 후, 지정된 처리_형식을 수행한다.
만일 검색후 처리 형식을 지정하지 않을 경우에는 명령어 출력을 표시하지 않는다. find 명령어를 기술함에 있어서, 표현식에
복수개의 검색_조건과 복수개의 대상_디렉토리를 지정할 수 있다.
┌────────────────────────────┐
│$find /home/user1 /home/user2 -name '*.rpt' -print |
└────────────────────────────┘
find 명령어상에서 특수문자들을 사용할 경우에는 쉘로부터 번역되는 것을 막고, find 명령어로 하여금 특수 문자들을 처리하도록 하기위해 반드시 보호문자로(',",\) 묶어주어야만 한다.
┌──────────────────┐ 특수문자를 사용하기 위해,
│ $find . -name '*.sh' -print │ 보호문자를 사용하여
└──────────────────┘ 묶어주는 것을 보여준다.
find 명령어는 검색_조건을 기준으로하여 대상_디렉토리내의 화일들을 검사하고, 지정한 처리_형식에 따라서 출력을 생성한다.
예를들면, find /home -user david -print라고 지정하면, /home 디렉토리 내에서 소유자가(즉, owner) david인 화일들을 검색하여 검색된 화일들에 대한 절대 경로명을 화면상에 표시한다.
처리 형식을 지정하지 않을 경우에는 아무 작업도 수행하지 않음으로 반드시, 명확하게 지정해야만 한다.
복수개의 검색_조건을 지정할 수 있다.
공백으로 구별되어 나열된 복수개의 검색_조건은 논리곱(AND) 연산이 수행되어 지므로, 나열된 모든 조건을 만족하는 화일들이 검색된다.
예를들면, find /home -user david -type d -print 명령어는 소유자가 david인 디렉토리들을 찾아서 프린트 한다.
또하나의 예를들면,
┌───────────────────────┐
│ $find . -atime +30 -atime -60 -ok rm {} \; │
└───────────────────────┘
30일 이전에서 60일 이전에 억세스된 화일을 찾아 rm(화일 삭제)시키라는 예이다. 이때 +30, -60의 형식을 주목하기 바란다.
복수개의 검색_조건이 -o를 사용하여 나열되면, 이는 논리합(OR) 연산을 수행하게 되어, 지정된 검색_조건중 어느 하나를 만족하는 화일들이 검색된다. 예를들면, find . \( -user david -o -user john \) -print라고 지정했을 경우에는, 소유자가 david이거나 john인 화일들을 찾아 화면상에 출력한다. 이 예에서 ( (그룹화 특수문자) 라는 특수문자가 \를 통해 보호되고 있는점을 주목하기 바란다.
지정한 검색_조건과 반대의(즉; 부정) 화일들을 검색하기 위해서는 !를 검색_조건에 지정하면 된다.
다음은 find 명령어에서 제공하는 검색, 조건과 처리 형식들이다.
[[ 검색조건 ]]
-atime n n 일 이전에 억세스되었던 화일들
-follow 심볼릭 링크된 화일들
-links n 링크(link) 수가 n개인 화일들
-mtime n n 일 이전에 변경된 화일들
-name pattern pattern이라는 화일명을 갖고있는 화일들
-perm nnn 접근 권한이 nnn인 화일들
-prune 지정한 대상_디렉토리내에서는 검색하지 않는다.
-size n n 블럭만큼의 크기를 갖는 화일을 검색한다.
-type char char로 지정한 화일 종류를 검색한다.
( f는 화일, d는 디렉토리 화일을 의미한다. )
-user logname 소유자가 logname인 화일들
[[ 처리형식 ]]
-print 화일의 절대 경로명을 화면상에 표시한다.
-exec cmd {} \;
검색된 화일들에 대해 {} 이전에 지정된 cmd를 수행한다.
검색된 화일들에 대해 지정한 명령어들을 일괄처리 하는
형식으로 작업을 수행한다.
-ok cmd {} \;
검색된 화일들에 대해 {} 이전에 지정된 cmd를 수행한다.
검색된 화일들 각자에 대해 명령어 수행 여부를 묻는
프롬프트를 표시하는 형식의 대화식으로 작업을 진행한다.
추천 Unix 전문학원
※Tel . 02) 3672 - 0025 ※HomePage . http://itbank-love.com
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받고 있습니다.
이 포스팅은 제휴마케팅이 적용되어 작성자에게 일정액의 커미션이 제공될수 있습니다.
이 글을 공유하기