findとwcの組み合わせで、ファイル数をカウントすることができますので、ご紹介します。

スポンサーリンク

findでファイルを再帰的に取得してwcでカウントする

下記のように、findの-typeオプションでfを指定して(ファイルのみ検索対象にして)、カレントディレクトリ以下のファイルを再帰的に取得していきます。
そしてパイプで繋げて、-lオプションでwcすることで、ファイル数がカウントできます。

 $ find . -type f | wc -l
 

例えば、カレントディレクトリ以下が下記のツリー構造になっていたとします。

 $ tree -a
.
├── .hiddenFile0
├── dir1
│   ├── .hiddenFile
│   └── file.txt
└── file0.txt

1 directory, 4 files

先程の、コマンドを実行すると、カウント結果が4ファイルとなることが確認できます。

 $ find . -type f | wc -l
       4

スポンサーリンク

隠しファイルを除外して、ファイル数をカウントしたい場合

find検索の時に!を付けて除外します。隠しファイルは、位置文字目が "." で、2文字目以降は任意の文字列なので、! -name ".*"とfind検索に付加します。

 $ find . -type f ! -name ".*" | wc -l
 

先程と同様に、下記のツリー構造があった時に、上記コマンドを実行します。

  $ tree -a
.
├── .hiddenFile0
├── dir1
│   ├── .hiddenFile
│   └── file.txt
└── file0.txt

1 directory, 4 files

下記が実行結果です。先頭が "." で始まる隠しファイルが除外されて、2ファイルとカウントされているのが確認できます。
 $ find . -type f ! -name ".*" | wc -l
       2

スポンサーリンク