在Bash脚本中使用find命令并排除子目录

时间:2014-09-28 11:51:04

标签: linux bash shell unix gnu-findutils

我写了一些函数,应该在父目录中找到一个目录,但问题是它需要很长时间,可能它也在子目录中搜索。 这是我的代码:

function findMspDir () {
    mountedDir=/opt/SwDrop/
    dirToSearch=/opt/SwDrop/Repository/
    if [ ! -d $mountedDir ]; then 
        echo "The directory hasn't been found"
        exit 1;
    else
        echo "The directory is mounted"
        subDirToSearch="MSP-$versionNum"
    #   mspDir=`find $dirToSearch -name $subDirToSearch`
        mspDir=$(find /opt/SwDrop/Repository/ -name 'MSP-1.5.1.4')
        if [ "$mspDir" = "" ]; then 
            echo "The MSP directory hasn't been found"
            exit 1;
        fi
    fi
    echo "The found directory is: $mspDir"
}

我确定我正在查找的目录位于/opt/SwDrop/Repository/下,并且它不能位于子目录中。 知道怎么解决吗?

2 个答案:

答案 0 :(得分:3)

随意将-maxdepth 1添加到您的查找命令中(请参阅GNU Findutils)。

答案 1 :(得分:1)

find -maxdepth 1 -name "you_name" -a type d