回答:
のようなものかもしれません
find . -type f | wc -l
トリックを行います。親フォルダーからコマンドを試してください。
find . -type f -ls | wc -l
find . -type f -print0 | tr -d -c '\0' | wc -c
find . -type f -printf . | wc -c
-- exec echoの代わりに、ソリューションにprintを採用します。
最速かつ最も簡単な方法は、を使用することtree
です。その速度は出力ターミナルによって制限されるため、結果をtail -1
にパイプすると、すぐに結果が得られます。-L
オプションを使用して、結果が好きなディレクトリレベルを制御することもできます。カラー化された出力には、を使用します-C
。例えば:
$ tree share/some/directory/ | tail -1
558 directories, 853 files
$ tree -L 2 share/some/directory/ | tail -1
120 directories, 3 files
findはtreeよりも速いように思えるので、現在の作業ディレクトリの各ディレクトリ内のファイルをカウントするために以下を使用しました(CWDのファイルは無視します)。
ls -d */ | while read dir_line
do
echo -n "$dir_line :"
find "$dir_line" -type f | wc -l
done
ls
は非常に悪い考えです。