![find -print는 항상 시작 디렉토리를 인쇄합니다.](https://linux55.com/image/49075/find%20-print%EB%8A%94%20%ED%95%AD%EC%83%81%20%EC%8B%9C%EC%9E%91%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EB%A5%BC%20%EC%9D%B8%EC%87%84%ED%95%A9%EB%8B%88%EB%8B%A4..png)
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