我有几个由pom.xml或类似项目配置的项目。
我想使用linux file命令找到这些项目,例如按find -name pom.xml
。
然而,由于深路径,这需要一些时间。当我找到文件时,我想使用find -prune
停止在子目录中搜索,但修剪只在匹配的目录上停止,而不是在匹配的文件上。
当目录aleady包含搜索文件时,有没有办法让find停止降序?
澄清;这就是我没有找到的地方:
pfind() {
parent=$1 && shift
for file in "$@" ; do
path=$parent/$file
if [ -e "$path" ] ; then
echo "$path"
exit 0
fi
done
for dir in $(echo $parent/*) ; do
if [ -d "$dir" ] ; then
pfind "$dir" "$@"
fi
done
}
但我宁愿用一种简单的方法来查找,这样对其他人来说更容易理解/可扩展
答案 0 :(得分:1)
find . -name pom.xml -print -quit
如果您想加快搜索速度,您还可以使用locate
来查询数据库而不是扫描文件系统。
您可以通过运行updatedb
答案 1 :(得分:0)
一行python:
python -c 'import os; print "\n".join(p for p, d, f in os.walk(os.sys.argv[1], topdown=True) if os.sys.argv[2] in f and list(d.remove(i) for i in list(d)))' $PWD pom.xml
的os.walk想法