Scopri come utilizzare il comando trova in questo tutorial dai nostri archivi.

Va da sé che ogni buon ambiente desktop Linux offre la possibilità di cercare il file system per i file e le cartelle. Se il tuo desktop predefinito non lo fa-perché questo è Linux-puoi sempre installare un’app per rendere la ricerca della gerarchia delle directory un gioco da ragazzi.

Ma per quanto riguarda la riga di comando?, Se vi capita di lavorare frequentemente nella riga di comando o di amministrare server Linux GUI-less, dove si fa a girare quando è necessario individuare un file? Fortunatamente, Linux ha esattamente quello che serve per individuare i file in questione, costruito a destra nel sistema.

Il comando in questione è find. Per rendere la comprensione di questo comando ancora più allettante, una volta che lo sai, puoi iniziare a lavorarlo nei tuoi script Bash. Non è solo convenienza, è potenza.,

Andiamo fino a velocità con il comando find in modo da poter prendere il controllo di individuare i file sui server Linux e desktop, senza la necessità di una GUI.

Come usare il comando find

Quando ho intravisto Linux per la prima volta, nel 1997, non ho capito bene come funzionasse il comando find; quindi, non sembrava mai funzionare come mi aspettavo. Sembrava semplice; emettere il comando find FILENAME (dove FILENAME è il nome del file) e il comando avrebbe dovuto individuare il file e riferire. Non sapevo che ci fosse altro nel comando. Molto di più.,

Se emetti il comando man find, vedrai che la sintassi del comando find è:

find 

Naturalmente, se non hai familiarità con il funzionamento di man, potresti essere confuso o sopraffatto da quella sintassi. Per facilità di comprensione, semplifichiamo questo. La sintassi più semplice di un comando di ricerca di base sarebbe simile a questa:

find /path option filename

Ora lo vedremo al lavoro.

Trova per nome

Scomponiamo quel comando di base per renderlo il più chiaro possibile., La struttura più semplicistica del comando find dovrebbe includere un percorso per il file, un’opzione e il nome del file stesso. Potresti pensare: “Se conosco il percorso del file, saprei già dove trovarlo!”. Bene, il percorso per il file potrebbe essere la radice dell’unità; quindi / sarebbe un percorso legittimo. Inserendolo come il tuo percorso richiederebbe più tempo per elaborarlo, perché deve iniziare da zero, ma se non hai idea di dove si trova il file, puoi iniziare da lì. In nome dell’efficienza, è sempre meglio avere almeno un’idea da dove iniziare la ricerca.,

Il bit successivo del comando è l’opzione. Come con la maggior parte dei comandi Linux, si dispone di un certo numero di opzioni disponibili. Tuttavia, stiamo iniziando dall’inizio, quindi cerchiamo di rendere più facile. Poiché stiamo tentando di trovare un file per nome, useremo una delle due opzioni:

  • name – case sensitive

  • iname – case insensitive

Ricorda, Linux è molto particolare sul caso, quindi se stai cercando un file chiamato Linux.odt, il seguente comando non restituirà alcun risultato.,

find / -name linux.odt

Se, tuttavia, si dovesse modificare il comando utilizzando l’opzione-iname, il comando find localizzerebbe il file, indipendentemente dal caso. Quindi il nuovo comando assomiglia a:

find / -iname linux.odt

Trova per tipo

Cosa succede se non sei così preoccupato di localizzare un file per nome ma preferiresti localizzare tutti i file di un certo tipo?, Alcuni dei più comuni file descrittori sono:

  • f – file regolare

  • d – directory

  • l – link simbolico

  • c – dispositivi a carattere

  • b – dispositivi di blocco

Ora, si supponga di voler individuare tutti i dispositivi a blocchi (un file che si riferisce a un dispositivo) sul tuo sistema., Con l’aiuto dell’opzione-type, possiamo farlo in questo modo:

find / -type c

Il comando precedente risulterebbe in un bel po ‘ di output (gran parte di esso indica il permesso negato), ma includerebbe un output simile a:

/dev/hidraw6/dev/hidraw5/dev/vboxnetctl/dev/vboxdrvu/dev/vboxdrv/dev/dmmidi2/dev/midi2/dev/kvm

Voilà! Dispositivi di blocco.

Possiamo usare la stessa opzione per aiutarci a cercare i file di configurazione. Dire, per esempio, si desidera individuare tutti i file regolari che terminano nel .estensione conf., Questo comando sarebbe simile a:

find / -type f -name "*.conf"

Il comando precedente attraverserebbe l’intera struttura di directory per individuare tutti i file regolari che terminano .conf. Se sai che la maggior parte dei tuoi file di configurazione sono alloggiati in /etc, puoi specificare che in questo modo:

find /etc -type f -name "*.conf”

Il comando precedente elencherebbe tutti i tuoi .file conf da / etc (Figura 1).

Figura 1: Individuazione di tutti i file di configurazione in / etc.,

Output dei risultati in un file

Un trucco davvero utile è quello di produrre i risultati della ricerca in un file. Quando sai che l’output potrebbe essere esteso o se vuoi sfogliare i risultati in seguito, questo può essere incredibilmente utile. Per questo, useremo lo stesso esempio di cui sopra e convoglieremo i risultati in un file chiamato conf_search. Questo nuovo comando sarà simile a:

find /etc -type f -name "*.conf” > conf_search

Ora avrai un file (conf_search) che contiene tutti i risultati del comando find emesso.,

Trovare i file per dimensione

Ora arriviamo a un momento in cui il comando find diventa incredibilmente utile. Ho avuto casi in cui desktop o server hanno trovato le loro unità misteriosamente riempite. Per creare rapidamente spazio (o aiutare a individuare il problema), è possibile utilizzare il comando Trova per individuare i file di una certa dimensione. Supponiamo, ad esempio, che tu voglia andare grande e individuare i file che superano i 1000 MB. Il comando find può essere emesso, con l’aiuto dell’opzione-size, in questo modo:

find / -size +1000MB

Potresti essere sorpreso dal numero di file visualizzati., Con l’output del comando, è possibile sfogliare la struttura delle directory e liberare spazio o risolvere i problemi per scoprire cosa sta misteriosamente riempiendo l’unità.

È possibile cercare con le seguenti descrizioni:

  • c – byte

  • k – Kb

  • M – Megabyte

  • G – Gigabyte

  • b – blocchi da 512 byte

imparare

Abbiamo solo scalfito la superficie di comando trova, ma ora avete una comprensione fondamentale di come individuare i file su sistemi Linux., Assicurati di emettere il comando man find per ottenere una conoscenza più profonda e completa di come far funzionare questo potente strumento per te.

Scopri di più su Linux attraverso il corso gratuito “Introduzione a Linux” della Linux Foundation e di edX.