Lo sapevi?

A partire dal 2015 abbiamo sviluppato internamente un sistema statefull di protezione dagli attacchi DDoS. Attualmente la protezione di core è erogata grazie a un cluster di server in load balancing. Abbiamo inoltre sviluppato un sistema di pre-filtering a livello di routing. Inoltre, in caso di attacchi superiori alla capacità di rete, le network interessate vengono filtrate grazie alla protezione remota Corero.

Come cercare file e cartelle su Linux

Estimated reading: 3 minutes 13 views

Quando si amministra una VPS può essere necessario individuare rapidamente un file o una cartella all’interno del sistema. Questo capita frequentemente quando si devono modificare configurazioni, trovare log, verificare file caricati sul server o individuare dati che occupano spazio.

Linux mette a disposizione diversi strumenti per effettuare queste ricerche. In questa guida vedremo come cercare file e cartelle per nome, individuare file in base alle loro caratteristiche e cercare una determinata parola all’interno dei file.

Cercare un file o una cartella per nome

Il comando più versatile per effettuare ricerche nel filesystem è find.

Per cercare un file specificando il nome:

				
					find / -name "nome-file"
				
			

La ricerca parte dalla directory / e può quindi richiedere del tempo, soprattutto su filesystem di grandi dimensioni.

Se non hai bisogno di cercare nell’intero sistema, è preferibile specificare una directory più precisa. Ad esempio:

				
					find /var/www -name "config.php"
				
			

In questo modo la ricerca verrà effettuata solamente all’interno di /var/www.

Se vuoi ignorare la differenza tra maiuscole e minuscole puoi utilizzare -iname:

				
					find /var/www -iname "config.php"
				
			

Cercare file in base all'estensione

find permette anche di cercare tutti i file con una determinata estensione.

Ad esempio, per trovare tutti i file PHP all’interno di /var/www:

				
					find /var/www -type f -name "*.php"
				
			

L’opzione -type f limita la ricerca ai soli file.

Per cercare invece tutte le directory che hanno un determinato nome:

				
					find /var/www -type d -name "backup"
				
			

In questo caso -type d limita la ricerca alle directory.

Cercare file in base alla dimensione o alla data

Può essere utile cercare i file non solo per nome, ma anche in base alle loro caratteristiche.

Ad esempio, per trovare tutti i file più grandi di 100 MB:

				
					find / -type f -size +100M
				
			

Questa ricerca è particolarmente utile quando il disco della VPS è quasi pieno e si vuole individuare rapidamente quali file occupano più spazio.

È inoltre possibile cercare file modificati recentemente.

Per trovare i file modificati nelle ultime 24 ore:

				
					find /var/www -type f -mtime -1
				
			

Per trovare invece i file modificati più di 7 giorni fa:

				
					find /var/www -type f -mtime +7
				
			

Cercare una parola all'interno dei file

Quando conosci il contenuto che stai cercando ma non sai in quale file si trovi, puoi utilizzare grep.

Ad esempio, per cercare la parola carlo all’interno dei file di configurazione di Nginx:

				
					grep -R "carlo" /etc/nginx
				
			

L’opzione -R permette di effettuare la ricerca anche nelle sottodirectory.

Puoi utilizzare lo stesso metodo per cercare errori, indirizzi IP, nomi di dominio o altre informazioni all’interno dei file.

Per ignorare la differenza tra maiuscole e minuscole puoi aggiungere -i:

				
					grep -Ri "errore" /var/log
				
			

Visualizzare solo i file che contengono una determinata parola

Se ti interessa sapere quali file contengono una determinata stringa, senza visualizzare tutte le righe corrispondenti, puoi utilizzare l’opzione -l:

				
					grep -Ril "errore" /var/log
				
			

Questo è particolarmente comodo quando devi individuare rapidamente quali file di log contengono un determinato messaggio.

Visualizzare solo i file che contengono una determinata parola

Per ricerche semplici basate esclusivamente sul nome del file puoi utilizzare anche locate.

Ad esempio:

				
					locate config.php
				
			

A differenza di find, locate utilizza un database dei file presenti nel sistema e può quindi restituire i risultati molto più rapidamente.

Il database potrebbe però non essere aggiornato in tempo reale. Per questo motivo un file creato o spostato recentemente potrebbe non comparire immediatamente nei risultati.

Leave a Comment

Share this Doc

Come cercare file e cartelle su Linux

Or copy link

CONTENTS