Uso sempre individuare per trovare file di cui conosco il nome, individuare è molto veloce e lo adoro. Per i file creati di recente, trovare è fantastico, normalmente con i file creati di recente so dove praticamente sono stati creati, quindi non devo cercare nel mio intero file system.
Quando ho dimenticato la posizione di una directory, tuttavia, né trovare né individuare sembrano ideali.
Individua genera sempre troppe informazioni perché ogni file all'interno di una directory è anche una corrispondenza per individuare. Ad esempio, se stavo cercando una directory denominata log da qualche parte sul mio file system, il log di localizzazione restituirebbe tonnellate e tonnellate di risultati. Se faccio la stessa cosa con find, find / -name log -type d find richiede minuti per essere eseguito e sputa ogni sorta di errore di autorizzazione ogni volta che incontra una cartella che non riesce a leggere.
C'è un modo migliore?
Risposta: Quindi rimango con grep finché non trovo qualcos'altro:
locatedir () {
for last; do true; done
if [[ $last == *\/* ]]
then
locate $@ | grep "${last}\$"
else
locate $@ | grep "/${last}\$"
fi
}
locate
ha la sua capacità regex integrata:-r
o--regex
... per la gamma completa di opzioni, vedi: info individuare