# Comandi per la ricerca ## find `find` è utilizzato per ricercare file su sistemi operativi Linux. Per limitare la ricerca alla sola directory corrente, è necessario utilizzare l'opzione `-maxdepth 1`. Il parametro `-mount` può essere impiegato per evitare che find scenda all'interno dei filesystem montati. Per restringere la ricerca a specifici filesystem, si utilizza invece il parametro -`fstype`. ### Attributi di ricerca Il comando find offre diversi attributi di ricerca che consentono di filtrare i risultati in base a criteri specifici: - `user USERNAME`: seleziona i file di proprietà dell’utente specificato (USERNAME) - `group GROUPNAME`: seleziona i file appartenenti al gruppo indicato (GROUPNAME) - `-readable`, `-writable`, `-executable`: identifica rispettivamente i file leggibili, scrivibili o eseguibili dall’utente corrente - `perm NNN`: restringe la ricerca ai file con permessi esattamente corrispondenti al valore ottale NNN - `empty`: individua file e directory vuoti - `size N`: filtra i file in base alla dimensione. I prefissi`+` e `-` indicano rispettivamente *più grande d* e *più piccolo di*. Ad esempio, `-size -10M` restituisce tutti i file di dimensione inferiore a 10 MB ### Ricerche temporali È possibile ricercare file in base a criteri temporali: - `-amin N`, `-cmin N`, `-mmin N`: utilizzati per trovare file a cui è stato effettuato l'`a`ccesso, che hanno subito modifiche agli attributi o che sono stati `m`odificati N minuti fa, rispettivamente - `-atime N`, `-ctime N`, `-mtime N`: operano in modo analogo ai parametri precedenti, ma utilizzano come unità di misura `N*24 h` (giorni). ## locate A differenza di find, il comando `locate` non esegue la ricerca direttamente nel filesystem, ma consulta un database costruito eseguendo il comando `updatedb`. Questo approccio consente di ottenere risultati molto rapidi, ma potrebbe comportare imprecisioni a seconda dell'ultimo aggiornamento del database. ## Trovare i binari Il comando `which` è utile per visualizzare il percorso assoluto di un eseguibile. Un comando simile è `type`, che fornisce informazioni su un binario, incluso il suo percorso e il tipo di file. ```bash which top /usr/bin/top type top top is /usr/bin/top ```