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.