Linux find 命令 一个神奇之处

遍历指定目录下所有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

意思是把每行开头和结尾替换为引号

相关推荐