find -print는 항상 시작 디렉토리를 인쇄합니다.

find -print는 항상 시작 디렉토리를 인쇄합니다.

500,000개의 파일이 포함된 디렉터리에 얼마나 많은 파일과 폴더가 반복적으로 있는지 계산하려고 합니다 find(참고:재귀적으로그리고아래에). 다음 명령을 사용하고 있습니다.

find my_folder -name '*' -print | wc -l

하지만 첫 번째 부분을 실행하는 동안 이상한 점을 발견했습니다.

find my_folder -name '*' -print

my_folder항상 첫 번째 줄에 폴더 이름을 먼저 인쇄합니다(이 경우). 첫 번째 명령에서 파일 수가 1씩 증가합니다.

왜 그런 겁니까? 이것을 방지하고 find가 다음만 인쇄하도록 하려면 어떻게 해야 합니까 my_folder?

답변1

찾고 있으므로 패턴이 *일치 하므로 대상 디렉터리와 일치합니다..문서-type f, 파일만 일치시키려면 를 추가해야 합니다 .

find my_folder -type f

그렇다면 를 사용하여 일치 항목을 차단할 GNU find수도 있습니다 .-mindepth 1.

find my_folder -mindepth 1

답변2

실제로 파일만 원하는 경우 명령줄에 지정된 디렉터리만 일치시키지 않는 -type f.-mindepth 1

관련 정보