Usare il Comando "find" Ricercare del Testo all'Interno dei File Usare il Comando "locate"
Si tratta del sistema di ricerca più semplice che puoi eseguire tramite il comando find. Il comando di esempio mostrato di seguito ricerca il contenuto indicato all'interno della directory attuale e di tutte le sottocartelle.  find -iname "nome_file"   Utilizzando il parametro -iname invece di quello -name verranno ignorate le differenze esistenti fra lettere maiuscole e minuscole. Ricorda quindi che utilizzando il parametro -name eseguirai una ricerca "case-sensitive" (cioè verrà ricercato esattamente il nome del file indicato). Se vuoi eseguire una ricerca all'interno dell'intero sistema, aggiungi il prefisso / alla tua stringa di ricerca. In questo modo indicherai al comando find di ricercare l'elemento indicato all'interno di tutte le directory presenti nel sistema, partendo da quella principale.  find / -iname "nome_file"    Puoi avviare la ricerca da una cartella specifica sostituendo il prefisso / con il percorso della directory in oggetto, per esempio /home/pat. Per limitare la ricerca all'interno della directory attuale e di tutte le sue sottocartelle, utilizza il prefisso . anziché /. * per individuare tutti gli elementi che corrispondono alla stringa di ricerca parziale che hai fornito. Il carattere speciale * è utilissimo in tutte le ricerche in cui non conosci il nome esatto dell'elemento da individuare, oppure per ricercare contenuti caratterizzati da un'estensione specifica.  find /home/pat -iname "*.conf"    Questo comando mostra l'elenco di tutti i file con estensione ".conf" presenti nella cartella "Pat" dell'utente (comprese tutte le sottocartelle). Puoi utilizzarlo anche per individuare qualsiasi elemento il cui nome o porzione del nome corrisponda alla stringa di ricerca utilizzata. Per esempio, se hai un gran numero di documenti che contengono nel nome la parola wikiHow, puoi individuarli tutti utilizzando la seguente stringa di ricerca "*wiki*". Se hai ottenuto un gran numero di risultati, riuscire a gestirli in modo efficace potrebbe essere difficile. Utilizza il carattere speciale | e il parametro "less". Questo comando permette di scorrere e filtrare i risultati in modo più semplice.  find /home/pat -iname "*.conf" | less Puoi utilizzare parametri specifici per ottenere solo un determinato gruppo di risultati. Puoi eseguire una ricerca relativa a file (f), directory (d), collegamenti simbolici (l), dispositivi a carattere (c) e dispositivi a blocchi (b) utilizzando il relativo parametro.  find / -type f -iname "nome_file" Se devi eseguire una ricerca all'interno di molti file dal nome simile, ma conosci la dimensione di quello che stai cercando, puoi filtrare i risultati in base a questa informazione.  find / -size +50M -iname "nome_file"    Questo comando visualizza solo i risultati le cui dimensioni eguagliano o superano i 50 MB. Per includere i risultati con dimensioni superiori o inferiori a quelle indicate, puoi utilizzare i parametri + o -. Omettendo il simbolo + o - verrà eseguita la ricerca di file che hanno esattamente la dimensione specificata. Puoi filtrare la ricerca in base a byte (c), kilobyte (k), megabyte (M), gigabyte (G) o blocchi di 512 byte (b). Nota che questo tipo indicatori sono case-sensitive. Per combinare fra loro più criteri di ricerca, puoi usare gli operatori -and, -or e -not.  find /travelphotos -type f -size +200k -not -iname "*2015*"   Questo comando esegue una ricerca di quei file all'interno della cartella "travelphotos" che sono più grandi di 200 kB e che non hanno nel nome la stringa "2015". Se devi cercare un file specifico creato da un determinato utente oppure che abbia un set specifico di autorizzazioni, puoi farlo eseguendo una ricerca mirata.  find / -user pat -iname "nome_file" find / -group users -iname "nome_file" find / -perm 777 -iname "nome_file"   I comandi di esempio eseguono nell'ordine una ricerca in base all'utente, al gruppo o alle autorizzazioni del file indicato. Se desideri ottenere l'elenco completo di tutti gli elementi che corrispondono al tipo cercato, puoi anche omettere il nome del file. Per esempio, il comando find / -perm 777 mostrerà l'elenco completo di tutti i file che hanno un permesso di accesso 777 (cioè che possono essere visualizzati e modificati da chiunque). Puoi combinare il comando find con altri comandi così che, una volta individuato il file in oggetto, vengano compiute azioni specifiche. Per separare il comando find dal secondo comando, utilizza il parametro -exec, quindi termina la stringa con la sequenza di caratteri {} \;.  find . -type f -perm 777 -exec chmod 755 {} \;   Questo comando di esempio esegue una ricerca di tutti i file presenti nella directory corrente (incluse tutte le sottocartelle) che hanno un permesso di accesso 777. Quindi, per ognuno dei file individuati verrà eseguito il comando chmod per impostare il nuovo codice di accesso in 755. grep. Se stai cercando un file di testo specifico, che contenga una determinata frase o stringa di caratteri, puoi utilizzare il comando grep. La sintassi di un semplice comando grep è la seguente   grep -r -i "stringa di ricerca" /percorso/dove/cercare/    Il parametro -r imposta una ricerca di tipo "ricorsivo", ovvero il testo indicato verrà cercato all'interno di tutti i file presenti nella cartella corrente e in tutte le sottocartelle. Il parametro -i indica che la stringa di ricerca specificata non è case-sensitive. Se vuoi eseguire una ricerca case-sensitive, ometti semplicemente l'operatore -i. Quando esegui una ricerca come quella di esempio, il comando grep mostra come risultato il nome del file individuato, seguito dal testo evidenziato che corrisponde alla stringa di ricerca specificata. Per nascondere quest'ultima informazione e mostrare così solo i nomi dei file individuati e il relativo percorso, utilizza il seguente comando:  grep -r -i "stringa di ricerca" /percorso/dove/cercare/ | cut -d: -f1 Il comando grep visualizza un messaggio di errore quando non riesce ad accedere a una determinata directory a causa della mancanza delle autorizzazioni necessarie, oppure nel caso si tratti di una cartella vuota. Per evitare che tale messaggio di errore venga visualizzato a video, puoi reindirizzarlo al dispositivo /dev/null.  grep -r -i "stringa di ricerca" /percorso/dove/cercare/ 2>/dev/null locate. Normalmente il comando locate viene eseguito più velocemente del comando find perché non utilizza il database relativo alla struttura dei tuoi file. Non tutte le distribuzioni di Linux vengono fornite con il comando locate preinstallato. Se questo è il tuo caso, segui queste istruzioni per provare a installarlo:  Digita il comando sudo apt-get update e premi il tasto Invio.  Digita il comando sudo apt-get install mlocate e premi il tasto Invio. Se il comando locate è già installato, vedrai apparire il seguente messaggio mlocate is already the newest version. In Arch Linux, usa il gestore di pacchetti pacman: pacman -Syu mlocate  Per Gentoo, usa emerge: emerge mlocate locate. Finché la base dati del comando locate non viene creata e popolata con le informazioni relative al sistema, è inutilizzabile. Tale operazione viene eseguita automaticamente ogni giorno, ma puoi effettuare l'aggiornamento anche manualmente. Se vuoi iniziare a utilizzare il comando locate immediatamente, devi eseguire tu stesso la procedura di aggiornamento. Digita il comando sudo updatedb e premi il tasto Invio. locate solo per eseguire semplici ricerche. Il comando locate è molto veloce, ma non possiede tutte le funzionalità di ricerca messe a disposizione dal comando find. Puoi eseguire semplici ricerche di file in modo molto simile a come vengono eseguite con il comando find.  locate -i "*.jpg"    Questo comando ricerca tutti i file con estensione .jpg all'interno dell'intero sistema. Il carattere speciale * ha le stesse funzioni viste nel comando find. Come nel comando find, il parametro -i ignora le lettere maiuscole e minuscole presenti nella stringa da ricercare. Se la ricerca ha ottenuto un numero troppo elevato di risultati, puoi ridurne le dimensioni usando il parametro -n seguito dal numero di elementi che desideri vengano visualizzati.  locate -n 20 -i "*.jpg"    In questo caso verranno mostrati solo i primi 20 risultati che rispettano i criteri specificati nella ricerca. Puoi anche utilizzare il carattere speciale | per utilizzare il parametro less e consultare l'elenco dei risultati in modo più semplice ed efficiente.
Esegui la ricerca di un file basandoti sul suo nome. Configura la ricerca in modo che abbia inizio nella directory "root". Utilizza il carattere speciale . Semplifica la gestione dei risultati della ricerca. Individua un tipo specifico di risultati. Filtra i risultati della ricerca in base alle dimensioni. Utilizza gli operatori booleani per affinare la ricerca. Esegui una ricerca di file in base al proprietario o alle autorizzazioni di lettura e scrittura. Quando la tua ricerca ottiene la corrispondenza esatta, combinala con altri comandi per eseguire azioni specifiche. Per ricercare delle stringhe di testo all'interno di file, utilizza il comando . Elimina il testo aggiuntivo dai risultati della ricerca. Nascondi i messaggi di errore. Installa la funzionalità . Aggiorna il database del comando . Utilizza il comando . Limita l'insieme dei risultati.
https://www.wikihow.com/Find-a-File-in-Linux https://www.wikihow.com/Find-a-File-in-Linux https://www.wikihow.com/Find-a-File-in-Linux
Using "find" Searching for Text in Files Using "locate"