如何列出所有源文件(*.c、*.cpp、*.h)

Nul*_*ptr 17 grep regex find

我想找到包含在 Linux/MinGW/Cygwin 中的源文件(*.c、*.cpp、*.h),并在所有子目录中递归查找。

我的基本想法是使用findand grep。但是,构建一个可以检查给定文件名是 *.c、*.cpp 或 *.h 的正则表达式并不容易。你能帮我吗?

cYr*_*rus 15

这应该有效:

find Linux/MinGW/Cygwin -name '*.c' -o -name '*.cpp' -o -name '*.h'
Run Code Online (Sandbox Code Playgroud)


Den*_*son 5

find -regex '.*/.*\.\(c\|cpp\|h\)$'
Run Code Online (Sandbox Code Playgroud)

  • @Ali:它将正则表达式锚定到行尾(例如,它可以防止查找名为“foo.cpp.old”的文件)。 (2认同)