遍历指定目录下所有C++源代码:
这么写:
find /home/goodorc/mayao/RakNet_working/DependentExtensions/ -name "*.cpp" -o -name "*.h" -o -name "*.c" -o -name "*.cc"
写这篇博客的原因是:我发现如果这么写:
find PATH -name *.cpp
就只能查找到这一级目录下的cpp文件,不会查找子目录,非常奇怪,原因没搞清楚。先记在这里。PS:像上面那样用引号扩起来就ok了。
find和CSCOPE配合使用:
cscope默认不支持C++,所以可以用find命令生成源文件列表,用 cscope -bkq -i filename 让cscope生成索引文件。
注意两点:
1、这种情况下务必使用绝对路径进行find,避免cscope在vim里跳转的时候找不到目录。
2、find命令的结果并没有对文件名中的空格进行转义,所以遇到特殊字符的文件,需要把整个路径用引号扩起来。我喜欢用vim这么做:
VI指令:%s/^\|$/"/g
意思是把每行开头和结尾替换为引号。