# Ricercare file ## Comando find Il comando principale per la ricerca di file in un sistema Unix/Linux è `find`. Questo comando consente di localizzare file e directory in base a vari criteri. ### Opzioni per la ricerca di file Le opzioni per specificare il tipo di file da cercare includono: - `-type f`: per cercare file regolari - `-type d`: per cercare directory - `-type l`: per cercare link simbolici Un esempio: ```bash find . -name "example" -type f ``` ### Criteri di ricerca aggiuntivi Oltre al tipo di file, è possibile utilizzare ulteriori criteri per affinare la ricerca: - `-iname`: consente di cercare in base al nome del file, ignorando la distinzione tra lettere maiuscole e minuscole - `-not`: restituisce i risultati che non corrispondono al criterio specificato - `-maxdepth N`: limita la ricerca nelle sottodirectory fino a un massimo di *N livelli* di profondità ### Ricerca per dimensione Il comando `find` permette anche di cercare file in base alla loro dimensione: ```bash find . -iname "example" -size 2G -type f ``` Le opzioni per specificare la dimensione includono: - `-size 100M`: per cercare file che corrispondono esattamente a 100 MB - `-size +100M`: per cercare file più grandi di 100 MB - `-size -20M`: per cercare file più piccoli di 20 MB - `-size +2G`: per cercare file più grandi di 2 GB ### Esecuzione di azioni sui risultati È possibile eseguire azioni sui risultati ottenuti dalla ricerca utilizzando l'opzione `-exec`. Ad esempio, per modificare i permessi di tutti i file con estensione `.conf`, si può utilizzare il seguente comando: ```bash find . -name "*.conf" -exec chmod 644 '{}' \; ``` Questa sintassi consente di applicare comandi a ciascun file trovato, sostituendo `{}` con il nome del file corrente.