2014-06-19 2 views
2

디렉터리의 파일 수를 재귀 적으로 찾습니다.디렉터리의 파일 수를 재귀 적으로 찾습니다.

예를 들어, one 디렉토리가 12 directories 디렉토리이고 각각이 12 directories 인 경우 13 directories 인 경우. 및 손자 (13 개 디렉터리)의 파일 수는 고정되어 있습니다. 얼마나 많은 것을 찾았습니까?

나는 다음과 같은 방식으로 출력을 시각화하는 것을 시도하고있다 :

a/b/1/ -- 50 files 
a/b/2/ -- 10 files 
a/c/1/ -- 20 files. 

답변

3
find . -type d -exec sh -c 'printf "%s " "$0"; find "$0" -maxdepth 1 -type f -printf x | wc -c' {} \; 

및 특정 형식에 대한

tree -idf --noreport | while read line ; do echo $line ; find $line -maxdepth 1 -type f | wc -l ; done : 단지 파일의 수의 출력을 준

find . -type d -exec sh -c 'n=$(find "$0" -maxdepth 1 -type f -printf x | wc -c); printf "%s -- %s files\n" "$0" "$n"' {} \; 
+0

'_/\ _'실망! 내 일보다 훨씬 낫다! – pistal

1

시도 :

find . -type f | wc -l

(그것의 출력의 출력 라인 (WC-L)를 계산 트리에서 파일 당 한 행을 출력하는 명령 (find. -type f)

[편집] 의견 및 업데이트 나는이 한 라이너를 내놓았다 :

+0

. 나는 폴더마다 싶다. – pistal

+0

내 대답이 업데이트되었습니다. – NotGaeL

+0

이 답변에는 몇 가지 문제점이 있습니다.'tree'의 결과는 구문 분석되지 않습니다. (인용 부호가없는) 공백이나 다른 재미있는 기호 (줄 바꿈)로 비참하게 실패 할 것입니다. –

0
for a in 1000000 1200000 1400000 1600000 1800000 2000000 2200000 2400000 800000 
    do 
    for b in 10 14 18 2 22 26 30 34 38 42 46 6 
    do 
     echo $a-$b 
     find $a/$a-$b/ -type f -print | wc -l 
    done 
done 
+0

저는 저자입니다. 나는 이것이 이것을하는 한 방법이라고 생각했다. – pistal

관련 문제