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'

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"

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

Successivamente, l’opzione -iname
abiliterà una ricerca non sensibile alle maiuscole:
$ sudo find . -type d -iname "pkg" $ sudo find . -type d -iname "PKG"

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.