GUIDA Cercare un file su Linux

Schrödinger

Editor in Chief
Administrator
Iscritto dal
20 Dicembre 2017
Messaggi
423
#1
Forse una delle prime domande che si fa l'utente alle prime armi è : come cerco un file su Linux?
Ovviamente chi installa l'ambiente desktop (KDE; Gnome, Xfce, etc) non si pone il problema perché utilizza gli strumenti messi a disposizione dalla shell grafica.
Ma se volessimo utilizzare la cara e più veloce riga di comando?
Ci vengono in aiuto alcuni comandi molto potenti.


Uno di questi è il comando find.

La struttura di base del comando è :

find [percorso] [espressione]

Utilizzando il percorso limitiamo la ricerca all'interno di una directory.
Le espressioni possono contenere opzioni, azioni e operatori.


Le opzioni più comuni sono :

-name stringa di testo esegue una ricerca in base al nome del file, con iname la ricerca non farà distinzione tra maiuscole e minuscole
-mtime data di modifica del file
-size dimensioni del file (c = byte, k= kilobyte, M= megabyte, G = gigabyte)

-type directory (d), i files (f)

Facciamo un esempio.

Codice:
# find /var/ -name lastlog
Con questo comando cerchiamo il file chiamato lastlog dentro la directory var.
L'output ottenuto sarà:


/var/log/lastlog
E' anche possibile utilizzare i caratteri jolly come l'asterisco

Codice:
# find /var/ -name last*

Altri esempi

Cercare file modificati negli ultimi 6 giorni

Codice:
find -mtime +6

Cercare solo directory con il nome lxd all'interno della directory var

Codice:
find /var/ -name lxd -type d
Cercare files più grandi di 5GB

Codice:
find -size +5G
Cercare files di dimensione compresa tra 5GB e inferiori a 10GB

Codice:
find -size +5G -size -10G

E se volessimo cercare una stringa di testo all'interno di un file?

In questo caso utilizziamo il comando grep.

grep stringa [percorso]

Esempio

Codice:
grep testo /home/
oppure

Codice:
grep -r testo /home/
usiamo l'opzione ricorsiva -r, nel caso volessimo cercare anche all'interno delle sub-directory contenute in home.

E se non ricordiamo esattamente la parola da cercare? Possiamo scrivere :

Codice:
grep -r tes /var/
E trovare tutti i files che contengono la parola tes all'interno della directory var.
Ecco l'output :


This is for sites that want the latest kernel headers. Please read
 
Top

Caro utente, ti ringraziamo per essere quì.

Ci siamo accorti che stai utilizzando un AdBlock o qualche estensione che impedisce il caricamento completo della pagina.

Non abbiamo banner fastidiosi, animazioni flash o popup irritanti.

I nostri proventi ci aiutano a coprire i costi di gestione del sito, recuperare eventuale materiale per la redazione e continuare il nostro operato.

Per favore, aggiungi hwreload.it alla whitelist o disabilita direttamente la tua estensione che blocca la pubblicità.

Ti ringraziamo per l'attenzione.