[bash: find] find 명령에서 하위 디렉토리 범위를 지정해서 검색하기
반달가면 이글루에서 백업 - http://bahndal.egloos.com/524868
find 명령에서 -maxdepth 옵션과 -mindepth 옵션을 사용하면 검색하는 디렉토리의 범위(깊이)를 조정할 수 있다. 깊이 0이면 시작하는 디렉토리 자체이다. 깊이 1이면 시작하는 디렉토리 내부의 파일/디렉토리를, 깊이 2이면 그 아래에 있는 하위 디렉토리 내부의 파일/디렉토리를 의미한다. 말로 설명하면 좀 복잡한데, 아래의 예시들을 보면 어느 정도 감이 잡힐 것이다.
# /tmp 디렉토리 및 하위의 파일/디렉토리 모두 출력
find /tmp
/tmp
/tmp/my_file.txt
/tmp/my_dir1/my_file1.txt
...
# /tmp 디렉토리만 출력
find /tmp -maxdepth 0
/tmp
# /tmp 디렉토리안에 있는 파일/디렉토리 출력, 하위 디렉토리는 제외(-maxdepth 1)
find /tmp -maxdepth 1
/tmp/my_file.txt
/tmp/my_dir1
...
# /tmp 디렉토리 안에 있는 파일(-type f)만 출력, 하위 디렉토리 제외
find /tmp -maxdepth 1 -type f
/tmp/my_file.txt
...
# 홈디렉토리를 제외하고 그 하위디렉토리부터(-mindepth 2) 검색
find ~/ -mindepth 2
/tmp/my_dir1/my_file1.txt
...
위의 예시에서 보듯이, 시작 디렉토리가 깊이 0, 그 아래의 파일/디렉토리가 깊이 1, 그 아래의 파일/디렉토리가 깊이 2 이런식으로 생각하면 된다.
디렉토리 구조가 복잡할 경우에 특정 범위의 항목에서만 파일이나 디렉토리를 검색할 수 있어서 매우 편리하다.