- Iscritto dal
- 20 Dicembre 2017
- Messaggi
- 423
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.
Con questo comando cerchiamo il file chiamato lastlog dentro la directory var.
L'output ottenuto sarà:
E' anche possibile utilizzare i caratteri jolly come l'asterisco
Altri esempi
Cercare file modificati negli ultimi 6 giorni
Cercare solo directory con il nome lxd all'interno della directory var
Cercare files più grandi di 5GB
Cercare files di dimensione compresa tra 5GB e inferiori a 10GB
E se volessimo cercare una stringa di testo all'interno di un file?
In questo caso utilizziamo il comando grep.
grep stringa [percorso]
Esempio
oppure
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 :
E trovare tutti i files che contengono la parola tes all'interno della directory var.
Ecco l'output :
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
L'output ottenuto sarà:
/var/log/lastlog
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
Codice:
find -size +5G
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/
Codice:
grep -r testo /home/
E se non ricordiamo esattamente la parola da cercare? Possiamo scrivere :
Codice:
grep -r tes /var/
Ecco l'output :
This is for sites that want the latest kernel headers. Please read