지난번에 용한님이 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 명령어 말고 다수의 파일에서 특정 문자열을 찾는 더 좋은 방법이 있다면 알려주세요. ^^