ディレクトリに存在するファイル数や特定の拡張子を持つファイル数、カレントディレクトリ以下のディレクトリ内に存在するファイル数や特定拡張子を持つファイル数の取得方法を以下に記します。
wcコマンドに-lオプションを使用すると行数を取得することができます。
つまり、検索した結果の行数を取得すればファイル数を取得することができます。
以下にlsコマンドとwcコマンドを利用した例を記します。 lsコマンドに-1オプションを利用し1ファイル1行として表示するようにします。
$ ls -1 a.csv a.txt b.csv b.txt c.csv c.txt
ls -1が出力した行数を取得すればファイル数になりますね。
ls -1とwc -lをパイプでつなげて動作させた結果です。
$ ls -1 | wc -l 6
ディレクトリが存在していてディレクトリをカウントから除きたい場合は以下のようにすれば良いと思います。
以下にls, wc, grepコマンドを利用し動作させた結果を記します。
$ ls -1F a.csv a.txt b.csv b.txt bar/ c.csv c.txt foo/
$ ls -1F | grep -v / a.csv a.txt b.csv b.txt c.csv c.txt
$ ls -1F | grep -v / | wc -l 6
findを利用すれば、カレントディレクトリ以下のファイルも対象にしたりなどすることができます。
lsコマンドと同様にfindで対象となったファイルの行数をwcコマンドで取得します。
テストしたファイルおよびディレクトリは以下の通りです。
$ find ./ ./ ./a.txt ./a.csv ./foo ./foo/aa.csv ./foo/aa.txt ./bar ./bar/aa.csv ./bar/aa.txt
$ find ./ -name "*.csv" | wc -l 3