查找没有断开链接的所有文件

时间:2017-07-06 09:15:38

标签: linux shell

我需要找到所有源文件,包括链接文件,但要避免链接断开。

我有一个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

1 个答案:

答案 0 :(得分:0)

findfile获取文件类型的帮助很少,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

旁注:引用您的变量扩展,以防止在扩展时发生字拆分和路径名扩展。