Modi per utilizzare il comando ‘trova’ per cercare directory in modo più efficiente

Questo tutorial ti guiderà attraverso i diversi modi per trovare una directory in Linux. Come potresti già sapere, in Linux tutto è un file compresi le directory. E una delle cose comuni che un utente Linux farà nella riga di comando è cercare un file o una directory.

Ci sono diversi mezzi e utilità utilizzati per cercare file nella riga di comando come find, locate e which. Tuttavia, l’ultima utilità (which) viene utilizzata solo per individuare un comando.

Ai fini di questo tutorial, ci concentreremo principalmente sull’utilità find, che cerca file su un file system Linux live ed è più efficiente e affidabile rispetto a locate.

Il difetto di locate è che legge una o più banche dati create da updatedb, non cerca attraverso un file system live. Inoltre, non offre flessibilità riguardo dove cercare (punto di partenza).

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

# locate [option] [search-pattern]

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

Nota: Nel comando seguente, l’opzione --basename o -b dice a locate di corrispondere solo al nome del file (directory) (che è esattamente pkg) ma non al percorso (/percorso/per/pkg). Dove \ è un carattere di globbing, disabilita la sostituzione implicita di pkg con *pkg*.

$ locate --basename '\pkg'
Find Directory Using locate Command

Come si può vedere dall’output del comando sopra, locate cercherà a partire dalla directory radice (/), ecco perché vengono trovate altre directory con lo stesso nome.

Pertanto, per affrontare questo problema, utilizzare find seguendo la sintassi semplificata di seguito:

$ find starting-point options [expression]

Vediamo alcuni esempi.

Per cercare la stessa directory (pkg) sopra, nella directory di lavoro corrente, eseguire il seguente comando, dove il flag -name legge l’espressione che in questo caso è il nome della directory.

$ find . -name "pkg"

Se si incontrano errori di “Permesso negato”, utilizzare il comando sudo in questo modo:

$ sudo find . -name "pkg"
Search a Directory Using find Command

Puoi impedire a find di cercare altri tipi di file tranne 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 lo switch di azione -ls:

$ sudo find . -type d -name "pkg" -ls
Find and List Directory

Successivamente, l’opzione -iname abiliterà una ricerca non sensibile alle maiuscole:

$ sudo find . -type d -iname "pkg" 
$ sudo find . -type d -iname "PKG" 
Find Directory with Case Sensitive

Per trovare informazioni di 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 rispetto al comando locate.

Nello stesso modo di prima, non dimenticare di inviarci i tuoi feedback o domande tramite la sezione commenti qui sotto. Infine, resta sempre connesso a Tecmint.

Source:
https://www.tecmint.com/find-directory-in-linux/