Unixfind:多种文件types
我想用多种文件types来运行find -name。 例如。
find -name *.h,*.cpp
这可能吗?
$ find . -name '*.h' -o -name '*.cpp'
要在man
页中find这个信息,inputman find
然后input/OPERATORS
来search操作/OPERATORS
然后回车。
的.
GNU find不是必须的,但是在Unix中是必须的。 在这两种情况下,引号都很重要,如果这些types的文件出现在当前目录中,则将引起错误。
在一些系统上(比如Cygwin),括号是必须的,以使扩展集合包含在内:
$ find . \( -name '*.h' -o -name '*.cpp' \)
那就是我用的
find . \( -name "*.h" -o -name "*.cpp" \) -print
find . -name "*.h" -or -name "*.cpp"
为我工作。
find . -name '*.h' -o -name '*.cc'`
适用于search文件。
find . \( -name '*.h' -o -name '*.cc' \)`
适用于在其上执行命令
find . \( -name '*.h' -o -name '*.cc' \) -exec egrep "#include" {} \; -print | egrep "^\."
你也可以使用-regex
工具:
find -E . -iregex ".*\.(js|jsx|html|htm)"
请记住,正则expression式看完整的绝对path:
有关testing用例的正则expression式的解释,请查看: https : //regex101.com/r/oY1vL2/1
-E
(作为path之前的标志)启用扩展(现代)正则expression式。
这是BSD find
(Mac OSX 10.10.5)