2014-09-28 2 views
0

Я написал некоторую функцию, которая должна найти каталог внутри родительского каталога, но дело в том, что оно длится долго, возможно, оно также ищет в подкаталогах. Вот мой код:Использование команды find в скрипте Bash и исключении поддиректории

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/ и она не может быть в подкаталогах. Любая идея, как ее решить?

ответ

1

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

+0

Что означает '-a'? – user3502786

+0

логический «AND» - «a», «OR» - «-o», это способ объединения нескольких условий в один. –

3

Не стесняйтесь добавлять -maxdepth 1 к вашей команде поиска (см. GNU Findutils).

+0

Это очень помогает! – user3502786