지난번에 용한님이 AjaXplorer(PHP 기반 웹하드)를 다뤄보라고 하셔서 테스트하던 중, 제일 먼저 부딪혔던 부분이 바로 휴지통입니다. 저는 윈도우에서 휴지통 기능을 없애버리기 때문에 AjaXplorer에서도 없애고 싶은데, 삭제를 해도 자꾸 자동으로 생성이 되더군요. 그래서 휴지통을 생성하는 부분을 찾아서 없애기로 마음먹었습니다.

수많은 PHP 파일이 있는데 어떤 파일에 설정하는 부분이 들어있는지 어떻게 찾아야 할까요? 물론 구글링을 해보거나 매뉴얼을 찾아봐도 되겠지만, 저는 직접 해결하는걸 선호하는 편이라 recycle_bin 문자열을 찾기로 했습니다.

일단 윈도우에서 문자열을 찾는 명령어는 find, findstr 정도가 있는데, findstr에서 /s 옵션을 사용하면 하위 폴더까지 recursive하게 찾아볼 수 있습니다.

예제) findstr /si recycle_bin * > result.txt

/s 옵션은 위에서 말씀드린대로 하위 폴더까지 다 찾는 것이고
/i 옵션은 대소문자를 구분하지 않겠다는 것입니다.
* 부분은 모든 파일에서 찾겠다는 것이고
> result.txt 부분은 결과물을 result.txt 파일에 저장하겠다는 뜻입니다.

이렇게 찾으니까 아래 그림처럼 나왔는데요


이 다음부터는 노가다가 필요합니다. 앞 부분은 파일 이름이고 뒷 부분은 찾은 문자열이 들어있는 라인입니다. 그런데 이게 좀 거시기해서 파일 이름과 찾은 문자열 사이가 쉽게 구분되지 않는 경우도 있습니다. 구분 자체는 콜론 표시로 하는데 탭으로 띄워서 보기 좋게 구분되어 있으면 좋으련만, 그렇지 않은 경우도 간혹 있어서 조금 불편합니다. 또한 세미콜론으로 개행되는 경우에도 개행되지 않고 세미콜론 이후로 연속해서 적혀있는 경우도 있습니다.

그래서 저는... 그냥 문자열이 들어있는 파일 이름만 출력하고, 일일이 파일을 열어보는게 낫겠다고 생각했습니다. 파일 이름만 출력하시려면 /m 옵션을 붙여주시면 됩니다.

예제) findstr /sim recycle_bin *


결과를 딱 보니 웬지 느낌상 server\conf\conf.php 파일에 뭔가 있을 것 같더군요. 그래서 이 파일을 열어보니... 아래와 같은 부분에서 설정이 가능했습니다.


"CREATE" 값을 false로 바꿔주니 더이상 휴지통이 강제로 생성되지 않았습니다.

findstr 명령어 말고 다수의 파일에서 특정 문자열을 찾는 더 좋은 방법이 있다면 알려주세요. ^^
신고

  1. 김진우
    2011.11.27 15:03 신고

    좋은 정보 감사합니다.

  2. tc
    2011.11.27 15:05 신고

    total commander 키워보세요.

  3. honor
    2011.11.27 15:41 신고

    글내용이 꼭 윈도우 기본 기능을 사용해야한다는게 아닌거 같긴한데...
    그냥 에디터에서 파일내찾기 기능으로 하면 쉬울텐데요
    울트라에디터에도 있고 제가쓰는 무료 DesyEdit에도 있는데 editplus엔 없나요?

    • BlogIcon snpbox
      2011.11.27 16:01 신고
      수정 및 삭제

      EditPlus에도 기능이 있네요. 개발자가 아니라서 평소에 에디터를 사용하지 않다보니 몰랐습니다. ^^;;

  4. seb
    2011.11.27 22:55 신고

    대부분의 에디터 / IDE 에서 다수파일 문자검색이 가능하고요, ack 라는 전문 유틸도 있습니다..

  5. 비뒤
    2011.11.28 08:59 신고

    아, 저는 EditPlus 와 AcroEdit 를 좋아한답니다.
    EditPlus는 검색 > 여러 파일 찾기 에서, AcroEdit는 찾기 > 파일에서 찾기 에서 잘 찾아집니다.

    사족 : 정품 구입한 몇 안 되는 유틸인 EditPlus 의 도구 > 정렬 > 중복 항목 제거, 요 기능이 예술입니다. 이 기능과 검색을 잘 섞어 쓰면 정말 편하더라구요. 얼마 전부터는 스누피 님한테 findstr 배워서 연습해 보는데, 수동 실행이지만 정교하기는 에디터들이 한 수 위인 듯해요.

  6. 용한
    2011.11.28 13:14 신고

    EditPlus 가 가격대 성능비가 지존이긴 하지만.. Notepad++ 이것도 괜찮습니다.

  7. kirrie
    2011.11.28 13:23 신고

    (아주) 약간 더 geek 스러운 버전.

    > find -name '*.php' -print | xargs grep 'recycle_bin'

    xargs는 표준 입력으로 받은 문자열들을 인자로 받은 명령어에 넘겨주는 유틸리티입니다.

    • kirrie
      2011.11.28 13:24 신고
      수정 및 삭제

      아 윈도우네요 ㅎㅎㅎㅎㅎ;;;
      제가 말한건 (리|유)닉스 환경에서 사용하는 방법이었습니다... ^^;;

  8. 분당둥이아빠
    2011.12.01 16:10 신고

    좀더 유용하게 쓰실 수 있는 툴 중에 Log Parser라는 툴이 있습니다.
    SQL을 이용할 수 있고, SYSLOG나 Event Log에서의 쿼리도 가능합니다. IIS LOG를 이용해 보고서 작성하거나 할때 아주 유용합니다.