如何使用unix“find”命令查找所有cpp和h文件?

时间:2008-11-10 14:35:03

标签: unix find

我知道找到我需要使用的所有h文件: 找 。 -name“* .h” 但是如何找到所有的h和cpp文件?

6 个答案:

答案 0 :(得分:39)

find . -name \*.h -print -o -name \*.cpp -print

find . \( -name \*.h -o -name \*.cpp \) -print

答案 1 :(得分:11)

find -name "*.h" -or -name "*.cpp"

(编辑以保护被解释为格式化的星号)

答案 2 :(得分:6)

Paul Tomblin已经提供了一个很棒的答案,但我认为我看到了你正在做的事情的模式。

有一天你可能会使用find来生成一个文件列表来处理grep,对于这样的任务,有一个更加用户友好的工具,Ack

适用于任何支持perl的系统,并以递归方式搜索目录中所有C ++相关文件的字符串就像

一样简单
ack "int\s+foo" --cpp 
默认情况下,

"--cpp"匹配.cpp .cc .cxx .m .hpp .hh .h .hxx个文件

(默认情况下它也会跳过存储库目录,因此不会匹配恰好看起来像文件的文件。)

答案 3 :(得分:5)

使用new Date('19/04/2015:21:43:47.40')执行此操作的简短明确方法是:

find

来自find . -regex '.*\.\(cpp\|h\)' 的手册页:"这是整个路径上的匹配,而不是搜索。"因此需要使用-regex作为前缀,以匹配文件名前的路径.*的开头。

答案 4 :(得分:2)

find . -regex ".*\.[cChH]\(pp\)?" -print

这在cygwin中对我来说很好。

答案 5 :(得分:2)

您可以在此简短形式中使用find

find \( -name '*.cpp' -o -name '*.h' \) -print

-print可以省略。当您想要找到多种类型的文件并执行相同的工作(比如计算md5sum)时,在表达式之间使用-o特别有用。