Para melhorar o enorme impacto de velocidade na localização, você pode simular algo como localizar
alias locate="if [ ! -e /tmp/locate.db -a ! -e /tmp/locate.lockdb ]
then touch /tmp/locate.lockdb
trap \"rm /tmp/locate.lockdb; rm /tmp/locate.db; exit\" SIGHUP SIGINT SIGTERM
find /|tee /tmp/locate.db
chmod 666 /tmp/locate.db
rm /tmp/locate.lockdb
elif [ -e /tmp/locate.lockdb ]
then find /
else cat /tmp/locate.db
fi|grep "
Claro que existe um problema com permissões! Seria melhor escrever alguns comandos setuid para tee
e cat
para gravar o banco de dados no modo superusuário e em um local melhor, mas /tmp
.
Uma alternativa barata na maioria dos sistemas de um ou poucos usuários seria escrever por usuário locate.db
em algum lugar perto de $HOME
.
Outro apelido legal é capaz de atualizar / encontrar. Hmm finalmente acho que esse alias funciona melhor que o original;)
alias relocate="if [ ! -e /tmp/locate.lockdb ]
then rm /tmp/locate.db
fi
locate "
Editar Eu realmente acho que realocar deve ser usado apenas como o alias de localização acima. Se você usar o relocate sem um argumento, receberá um erro. A idéia é usar relocate "no file to search for"
se você não quiser pesquisar, mas apenas atualizar o banco de dados.
Ok, o achado também deve ser definido. Mas então você pode jogar fora seu pacote de localização.
O argumento grep
deve ser passado por sed
para citar os .
dots.
OBSERVAÇÃO PARA NOOBS : Quando estou falando de setuid aqui NÃO DEFINIR O SETUID FLAG EM FERRAMENTAS COMO tee
, cat
ou find
. Isso seria uma violação de segurança do seu sistema! O que quero dizer é escrever alternativas seguras para esses comandos simples que funcionam no modo setuid e que funcionam de forma restrita, apenas para o propósito de fornecer ferramentas adequadas para esse apelido.