我需要找到所有源文件,包括链接文件,但要避免链接断开。
我有一个c / c ++源代码区域,有些文件链接到其他目录的文件,我想用cscope索引它们。当链接断开时,cscope会出错:
cscope: cannot find file /...file....
我真正需要的是创建一个干净的cscope.files而不会损坏链接文件。
我目前正在做的是:
find $code_path -type f -name '*.h' -o -name '*.c' -o -name '*.cpp' >> cscope.files
答案 0 :(得分:0)
find
在file
获取文件类型的帮助很少,print
- 没有损坏符号链接目标的文件:
find "$code_path" -type f -name '*.h' -o -name '*.c' -o -name '*.cpp' \
-exec sh -c 'file "$1" | grep -qv broken' _ {} \; -print
这有一次处理一个文件的警告。
如果您没有任何带有空格或任何控制字符的文件名,您可以利用find ... -exec {} +
一次性处理最大文件数的功能,而不会触发{{1并使用ARG_MAX
获取所需的文件名:
awk
旁注:引用您的变量扩展,以防止在扩展时发生字拆分和路径名扩展。