项目里存在着以前很多的用cmake 生成的Makefile,由于本人不喜欢cmake,所以在部分目录下自己写了 Makefile,之前存在的很多的 Makefile 需要删除,但不知道在哪些目录下,所以有了以下的脚本:
#!/bin/bash
if [ $# -ne 1 ]; then
echo "Usage: $0 fileName"
exit
fi
tmpName=""
filelist=$(find ./ -name $1 | xargs grep -wn "default_target" | awk -F: '{print $1}')
for fileName in ${filelist}
do
if [ -n "${tmpName}" -a "${tmpName}" = "${fileName}" ]; then
continue
fi
set +x
echo "rm -rf ${fileName}"
rm -f ${fileName}
tmpName=${fileName}
done
用 grep 找到指定的Makefile(这个Makefile 里有 default_target 字段),然后保存下这些文件名,因为 grep 出来的可能同一个文件里有多个 default_target ,所以添加了一个 if 判断,避免重复删除,脚本执行的还挺有效: