特定のディレクトリ配下にあるファイルの行数とかを再帰的に取得する場合、wcコマンドが利用される場合が多いだろう。

wc -l $(find /PATH -type f)
blacknon@BS-PUB-UBUNTU-01:~/test_dir$ ls -la
合計 152
drwxrwxr-x 12 blacknon blacknon   4096  2月 25 16:42 .
drwxr-xr-x 15 blacknon blacknon   4096  2月 25 16:39 ..
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:41 00
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:41 10
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:41 20
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:42 30
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:42 40
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:42 50
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:42 60
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:42 70
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:42 80
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:42 90
-rw-rw-r--  1 blacknon blacknon 102773  2月 25 16:42 text.txt
blacknon@BS-PUB-UBUNTU-01:~/test_dir$ wc -l $(find ./ -type f)
    9344 ./40/test46.txt
    9344 ./40/test47.txt
    9344 ./40/test44.txt
    9344 ./40/test48.txt
    9344 ./40/test49.txt
        ~省略~
    9344 ./80/test89.txt
    9344 ./80/test82.txt
    9344 ./80/test85.txt
    9344 ./80/test83.txt
    9344 ./text.txt
    934400 合計

こんな感じでやれば、指定したディレクトリ配下にある各ファイルと合計の行数がわかる。 が、さらにその中身(ファイルの種類だったり、コメント行の行数だったり…)を把握する場合は、clocコマンドを利用すると楽だ。

インストールは、以下のコマンドで行える。

yum enablerepo=epel install cloc
apt install cloc
brew install cloc

インストール後は、普通に対象のディレクトリを引数として指定してやれば再帰的に確認してくれる。 出力例は以下。Golangとかでもちゃんと検知してくれる。

blacknon@BS-PUB-DEVELOP:~/go/src/github.com/blacknon/lssh$ cloc /home/blacknon/go/src
     373 text files.
     364 unique files.
     779 files ignored.

http://cloc.sourceforge.net v 1.60  T=2.05 s (161.7 files/s, 38455.4 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Go                             309           8222           6908          55065
Assembly                        15            613            390           7383
C                                1             37              8            152
Python                           1             15              1             94
YAML                             3              0              0             32
make                             1              5              0             14
C/C++ Header                     1              2              5              1
vim script                       1              0              0              1
-------------------------------------------------------------------------------
SUM:                           332           8894           7312          62742
-------------------------------------------------------------------------------

出力フォーマットも種類があって、xmlやcsvで出力させることも可能。 いまだにステップ数とかで成果を見てるとこなんかでは結構便利かもしれない(たぶんまだ生き残っている)。