查找但不下载到包含搜索文件的目录中

时间:2015-01-23 10:11:09

标签: linux bash find

我有几个由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
}

但我宁愿用一种简单的方法来查找,这样对其他人来说更容易理解/可扩展

2 个答案:

答案 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

来自https://stackoverflow.com/a/37267686/1888983

的os.walk想法