리눅스에 있는 find명령의 활용법을 소개한다.
find는 지정된 디레토리의 하위에 있는, 조건에 맞는 파일(또는 디렉토리)의 패스를 보여주거나 그 파일을 커맨드인자로
실행파일을 실행시킨다.

    find <지정된-디렉토리>  <조건>  [실행]


예를 들어,
    find .
    find /user/linux-xlnx-xilinx-v14.4
와 같이 사용할 수 있다.


조건을 주게 되면,
    find . -name '*.[ch]'
는 C-source를 찾아 준다.

 

   find . -perm +1
는 현재 디렉토리 밑에 있는 실행파일을 찾는다. 정확하게 말하면, 실행퍼미션이 있는 파일을 찾아 리스팅한다.


    find . -size +100k
는 파일의 크기가 100KB이상이 파일을 리스팅한다.


    find . -type f
는 일반파일을 리스팅한다. 'f'대신에 'd'를 사용하면 딜렉토리, 'l'을 사용하면 symbolic-link 등등이 있다.
자세한 내용은 man-page('man find') 참조할 수 있다(첨부파일 있음)


실행파일에 커맨드인자로 주기 위해서는 '-exec'옵션을 사용한다.
    find dir-a -name '*.o' -exec rm {} \;
를 입력하면, 'dir-a'밑에 있는 옵브젝트파일을 모두 지운다. {}는 리스팅되는 각각의 파일(패스)를 의미한다.


    find dir-b -name '*.[ch]' -exec chmod ugo-x {} \;
라고 하면
     'dir-b'밑에 있는 C소스에 있는 실행퍼미션을 없앤다.

 

   find . -name '*.[ch]' -exec grep -Hn word {} \;
라고하면
    현재 디렉토리 밑에 있는 모든 C소스파일 각각에 대해 'word'라는 단어가 있는 줄을 디스플레이한다.
find를 이용하는 단어찾는 스크립트파일(find_word.sh)을 첨부한다

    사용법: fw <word> [target-directory]
    현재 디렉토리 밑에 있는 모든 '*.c', '*.h', '*.cpp' 파일들에 대해서 'word'라는 서브문자열을 검색한다.


예전부터 소스디렉토리에 단어를 검색하기 위한 방법으로 find가 사용되곤 했다.
vi사용자 중에 'ctags'사용하는 사람들도 많았고 emacs에서 어려운 핫키를 기억해가면서 방법도 있고,
Hypertext를 이용하는 소스코드 브라우져를 활용하고 있지만, find는 조금 덜 효율적이면서 직접적인 방법이라 할 수 있다.
리눅스에서도 multi-tab이 지원되는 GUI편집기가 계속 나오고 있다. 최근에 나온 sublime(http://www.sublimetext.com/)나

텍스닉( http://www.texniccenter.org/) 과 같은 것을 사용하면 업무능률을 높일 수 있다.