Usando locate per trovare una directory

20

Io uso locate tutto il tempo per trovare file che conosco, il nome di locate è molto veloce e lo adoro. Per i file creati di recente find è grandioso, normalmente con i file creati di recente, so dove sono stati creati in pratica, quindi non devo cercare nell'intero file system.

Quando ho dimenticato la posizione di una directory, tuttavia, né trovare né localizzare sembrano ideali.

Trova sputa sempre troppe informazioni perché ogni file all'interno di una directory è anche una corrispondenza per individuare. Ad esempio se cercassi una directory denominata log da qualche parte sul mio file system locate log restituirebbe tonnellate e tonnellate di risultati. Se faccio la stessa cosa con find, find / -name log -type d find richiede pochi minuti per essere eseguito e sputa tutti i tipi di errori di permessi ogni volta che incontra una cartella che non può leggere.

C'è un modo migliore?

Risposta: quindi mi sto attenendo a grep finché non trovo qualcos'altro:

locatedir () {
    for last; do true; done
    if [[ $last == *\/* ]]
    then
        locate $@ | grep "${last}$"
    else
        locate $@ | grep "/${last}$"
    fi
}
    
posta Michael 27.11.2010 - 22:49
fonte

4 risposte

12

Un modo (ho il sospetto che ci possa essere un modo migliore) è usare grep per restituire solo quei percorsi che terminano con il nome della tua cartella:

locate foldername | grep /foldername$
    
risposta data misterben 27.11.2010 - 23:08
fonte
28

Puoi utilizzare l'opzione --regex ( -r ) di locate :

locate -r '/log$'
    
risposta data Florian Diesch 28.11.2010 - 00:31
fonte
5

Hai provato:

locate /home/insertusernamehere/*/filename ?

o

locate file | grep -i '^/home/.*/examplesubdirectory' ?

o qualsiasi variazione di tale?

    
risposta data RolandiXor 27.11.2010 - 23:02
fonte
2

Ecco qui

locatedir () {
    locate "$*" | while read line
    do 
    if [ -d "$line" ] ; then echo $line ; fi
    done
}

locatedir $*
    
risposta data Linuxuser 12.06.2015 - 13:27
fonte

Leggi altre domande sui tag