답변:
드라이브로 이동하여 간단히 실행하십시오.
ls -lR | grep ^d | wc -l
grep -c
이상을 선호 합니다 wc -l
. 어쩌면 나일지도 몰라
\nd
( \n
NL 문자 위치).
ls
출력은 파이프로되어 있지 않습니다 . 또한 전체 트리를 출력 한 다음 grep을 실행해야하기 때문에 속도가 훨씬 느려질 것입니다.
하위 디렉토리를 포함한 모든 폴더를 찾으십니까?
find /mount/point -type d | wc -l
... 또는 루트 디렉토리에서 모든 폴더를 찾으십니까 (하위 디렉토리 제외)?
find /mount/point -maxdepth 1 -type d | wc -l
*foo*
이탤릭체로 사용하십시오 : foo )
find /path -not -iname '*.mp3' | wc -l
필터 MP3 파일로, 또는 두 가지 모두 MP3 파일 및 WAVS 사용을 얻을find /path -not -iname '*.mp3' -not -iname '*.wav' | wc -l
줄 바꿈은 디렉토리 이름에 유효한 문자입니다. find
찾은 각 디렉토리에 대해 빈 줄을 인쇄 한 다음 wc
해당 줄을 세어 보도록 제안 합니다.
find /mount/point -type d -printf '\n' | wc -l
다음을 시도하십시오 [아래 참조] :
ls -1 -p | grep "/" | wc -l
하위 디렉토리 인 항목에 대해 슬래시와 함께 현재 디렉토리의 한 열 목록을 인쇄 한 다음 슬래시로 행을 계산합니다.
편집 : 아마도 좀 더 명시 적으로 quckquite의 대답을 사용해야 할 것입니다. (Quick의 제안을 고려한 후) 내 것을 수정했습니다.
ls -Rp | grep "/$" | wc -l
-1
때문에 LS는 파이프를 감지하지 않습니다 형식 열 것입니다. 또한을 사용하여 재귀 목록을 가져올 수 -R
있지만 "/$"
후행 슬래시와 만 일치 하도록 grep하고 싶을 수도 있습니다 (또는 카운트가 해제됩니다). 최종 버전 :ls -Rp | grep "/$" | wc -l
.
(즉 /mount/point
, 그 수에)이 LS의 내 위의 의견에 버전을하지 않습니다. 이러한 개수는 1 씩 다르므로 find 명령 /mount/point/*
에서이를 사용 하여 이를 수정할 수 있습니다 (숨겨진 점 디렉토리가 없다고 가정).
많은 디렉토리가있는 경우와 같은 도구는 tree
완료되거나 중단되는 데 시간이 오래 걸리므로보다 효율적인 것을 사용하고 싶을 수 있습니다.
내가 생각할 수있는 디렉토리를 계산하는 가장 효율적인 방법은 다음과 같습니다 . 전체 경로와 파일 이름 대신 찾은 각 폴더마다 find
하나씩 만 인쇄 .
하고 wc
문자 수를 반복해야하기 때문입니다.
find /mount/point -type d -printf '.' |wc -c
/mount/point
계산에서 제외 하고 하위 디렉토리 만 계산하려면 다음을 수행하십시오.
find /mount/point -mindepth 1 -type d -printf '.' |wc -c