web-dev-qa-db-ja.com

フォルダーおよびサブフォルダー内のファイルの数を見つけますか?

フォルダーとそのすべてのサブフォルダーの下にあるファイルの総数の合計を見つけたい。

140
topless

のようなものかもしれません

find . -type f | wc -l

トリックを行います。親フォルダーからコマンドを試してください。

219
sagarchalise

treeコマンドを使用します。 treeパッケージをインストールする必要がある場合があります。

指定されたフォルダーの下にあるすべてのファイルとフォルダーをリストし、最後に要約をリストします。

27
Egil

現在のディレクトリのルートにあるファイル(拡張子のないファイルも含む)をカウントするには、次を使用します。

ls -l | grep ^- | wc -l

現在のディレクトリのルートからファイル(拡張子のないファイルも)再帰的にをカウントするには、次を使用します。

ls -lR | grep ^- | wc -l
13
user38537

最速かつ最も簡単な方法は、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

まだ存在しない場合は、取得できます here

13
not2qubit
find -type f -printf . | wc -c

99個の改行を含むファイル名は100個のファイルとしてカウントされるため、findの出力行をカウントしないでください。

8
user unknown

パス内の各フォルダーに対してこのコマンドを使用します

for D in *; do echo $D; find $D -type f| wc -l; done
3
Sriram Murali

findはtreeよりも速いように思えるので、現在の作業ディレクトリの各ディレクトリ内のファイルをカウントするために以下を使用しました(CWDのファイルは無視します)。

ls -d */ | while read dir_line do echo -n "$dir_line :" find "$dir_line" -type f | wc -l done

1
Mike Bounds

find . | wc -lを使用できます

find .は、現在のフォルダーから始まるすべてのファイルとフォルダー、およびその内容をリストします。
wc -lは、検索の結果をカウントします

0
david

私はこのオプションを自分で使います:

ls -alR | grep -c ^-

0
Charles