Não é a solução mais bonita, mas eu usaria apenas um condicional simples dentro da função precmd
, verificando se o diretório atual está montado ou não. Agora, fazer isso depende do tipo de montagem que é. Se os diretórios são conhecidos, algo como isto deve funcionar.
slowdirs="/home/joe/slowdir1:/home/joe/slowdir2:/mnt/slowdir3"
precmd() {
isslow=0
echo $slowdirs | tr \: \n |
while read line; do
if [[ $PWD == $line* ]]; then
isslow=1
break
fi
done
if [[ $isslow == 0 ]] ; then
# do slow stuff
fi
# do non slow stuff
}
O que isso faz é testar se o diretório atual começa com (está dentro) ou se é um dos diretórios listados na variável slowdirs
. Se não for um dos diretórios "lentos", executa os "comandos lentos", caso contrário, ele os ignora.