Linux 環境で、ディレクトリ内にあるファイルの数を数えるためのコマンドについてまとめました。
ファイル数をカウントするコマンド
# 現在のディレクトリのファイルカウントを表示
$ find . -type f | wc -l
Linux 系OSでは「find」は、ファイルやディレクトリを検索するコマンドですが、その出力結果の「行数」を数えることで、ファイル数をカウントすることができます。
もし、現在のディレクトリのみ(サブディレクトリを含めない)検索したければ、find に「-depth」オプションを付けて、深さ「1」を指定ます。
# 現在のディレクトリのファイルカウントを
$ find . -type f -depth 1 | wc -l
find で見つかったファイルの出力の結果を、パイプ(|) で、を次のコマンドに受け渡しています。
「-l」でLine(行数)を数えています。
ls コマンドを使って、ファイル数を数える
find コマンドでなく、ls を使った別の方法もあります。
ls コマンドは、現在のディレクトリのファイルやディレクトリを出力しますが、これを wc に食わせることで、ファイル数をカウントできます。
$ ls -1U || wc -l
-1 オプションは、1行に1ファイル表示させ、-Uオプソションでソートを停止して、高速化しています(-U は、必須ではないが、大量にファイルあると遅くなるのでつけたほうが良いです)
[参考] 単語数や、行数、文字数・・、を数える「wc」コマンド
「wc」は、 Word Count の略ですが、単語数、行数やバイト数を数えるためのコマンドです。何を数えるかはオプションで指定します。
オプション | 数える対象 |
---|---|
-l | Line: 行数を数える |
-c | Character: 文字数を数える |
-w | Word: 単語数を数える、スペースで囲まれた文字列を1単語とする |