我知道找到我需要使用的所有h文件: 找 。 -name“* .h” 但是如何找到所有的h和cpp文件?
答案 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
特别有用。