首先,您不需要使用
cat行数。这是一种称为猫的无用使用(UUoC)的反模式。要计算当前目录中文件的行数,请使用
wc:
wc -l *
然后,该
find命令递归子目录:
find . -name "*.c" -exec wc -l {} ;.
是要从中开始搜索的顶层目录的名称-name "*.c"
是您感兴趣的文件的模式-exec
给出要执行的命令{}是find命令传递到命令的结果(在此处wc-l
);
指示命令结束
此命令生成所有找到的文件及其行数的列表,如果要获得 所有
找到的文件的总和,可以使用find列出文件(带有
find . -name "*.c" -print | xargs wc -l
编辑以解决Robert
Gamble的评论(谢谢):如果文件名中包含空格或换行符(!),则必须使用
-print0option代替
xargs-null以便文件名列表与以空终止的字符串交换。
find . -name "*.c" -print0 | xargs -0 wc -l
Unix的哲学是拥有只做一件事并且做得很好的工具。



