Ricerca nel sito web

Modi per utilizzare il comando "trova" per eseguire ricerche nelle directory in modo più efficiente


Questo tutorial ti guiderà attraverso i diversi modi per trovare una directory in Linux. Come forse già saprai, in Linux tutto è un file comprese le directory. E una delle cose più comuni che un utente Linux farà all'interno della riga di comando è cercare un file o una directory.

Esistono diversi mezzi e utilità utilizzati per la ricerca di file sulla riga di comando come trova, localizza e quale. Tuttavia, l'ultima utilità (quale) viene utilizzata solo per individuare un comando.

Nell'ambito di questo tutorial, ci concentreremo principalmente sull'utilità find, che cerca file su un filesystem Linux live ed è più efficiente e affidabile rispetto a locate.

Lo svantaggio di locate è che legge uno o più database creati da updatedb, non cerca attraverso un filesystem attivo. Inoltre, non offre flessibilità riguardo al luogo da cui effettuare la ricerca (punto di partenza).

Di seguito è riportata la sintassi per eseguire il comando localizza:

locate [option] [search-pattern]

Per dimostrare lo svantaggio di locate, supponiamo di cercare una directory denominata pkg nella directory di lavoro corrente.

Nota: nel comando seguente, l'opzione --basename o -b indica localizza< in modo che corrisponda solo al nome base del file (directory) (che è esattamente pkg) ma non al percorso (/path/to/pkg). Dove \ è un carattere globbing, disabilita la sostituzione implicita di pkg con *pkg*.

locate --basename '\pkg'

Come puoi vedere dall'output del comando sopra, locate cercherà iniziando dalla directory (/) radice, ecco perché vengono abbinate altre directory con lo stesso nome.

Pertanto, per risolvere questo problema, utilizza trova seguendo la sintassi semplificata di seguito:

find starting-point options [expression]

Vediamo alcuni esempi.

Per cercare la stessa directory (pkg) sopra, all'interno della directory di lavoro corrente, esegui il seguente comando, dove il flag -name legge l'espressione che in questo caso è la nome base della directory.

find . -name "pkg"

Se riscontri errori "Autorizzazione negata", utilizza il comando sudo in questo modo:

sudo find . -name "pkg"

Puoi impedire a find di cercare altri tipi di file eccetto le directory utilizzando il flag -type per specificare il tipo di file (nel comando seguente d significa directory) come segue:

sudo find . -type d -name "pkg"

Inoltre, se desideri elencare la directory in un formato di elenco lungo, utilizza l'opzione di azione -ls:

sudo find . -type d -name "pkg" -ls

Successivamente, l'opzione -iname abiliterà una ricerca senza distinzione tra maiuscole e minuscole:

sudo find . -type d -iname "pkg" 
sudo find . -type d -iname "PKG" 

Per trovare informazioni sull'utilizzo più interessanti e avanzate, leggi le pagine man di find e locate.

man find
man locate

Come ultima osservazione, il comando find è più affidabile ed efficiente per la ricerca di file (o directory) in un sistema Linux se confrontato con il comando locate.

Come prima, non dimenticare di inviarci il tuo feedback o domande tramite la sezione commenti qui sotto. Infine, rimani sempre connesso a Tecmint.