Come Trovare un File in Linux

3 Metodi:Usare il Comando "find"Usare il Comando "locate"Ricercare del Testo all'Interno dei File

Trovare un file all'interno di un sistema Linux può essere un processo difficoltoso quando non si sa come fare. Il modo migliore di individuare un contenuto consiste nell'utilizzare alcuni comandi di sistema. Imparare a sfruttare questi strumenti al massimo delle loro possibilità ti darà il pieno controllo dei tuoi file, consentendogli di dimostrarsi molto più potenti ed efficaci delle semplici funzionalità di ricerca implementate in altri sistemi operativi.

1
Usare il Comando "find"

  1. 1
    Esegui la ricerca di un file basandoti sul suo nome. 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.[1]
    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).
  2. 2
    Configura la ricerca in modo che abbia inizio nella directory "root". 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, ad esempio /home/pat.
    • Per limitare la ricerca all'interno della directory attuale e di tutte le sue sottocartelle, utilizza il prefisso . anziché /.
  3. 3
    Utilizza il carattere speciale .* 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 sottodirectory).
    • Puoi utilizzarlo anche per individuare qualsiasi elemento il cui nome o porzione del nome corrisponda alla stringa di ricerca utilizzata. Ad 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*".
  4. 4
    Semplifica la gestione dei risultati della ricerca. 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
    
  5. 5
    Individua un tipo specifico di risultati. 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"
    
  6. 6
    Filtra i risultati della ricerca in base alle dimensioni. 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.
  7. 7
    Utilizza gli operatori booleani per affinare la ricerca. Per combinare fra loro più criteri di ricerca, puoi usare gli operatori -and, -or e -not.[2]
    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".
  8. 8
    Esegui una ricerca di file in base al proprietario o alle autorizzazioni di lettura e scrittura. 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. Ad 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).[3]
  9. 9
    Quando la tua ricerca ottiene la corrispondenza esatta, combinala con altri comandi per eseguire azioni specifiche. 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.

2
Usare il Comando "locate"

  1. 1
    Installa la funzionalità .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.
  2. 2
    Aggiorna il database del comando .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.[4]
    • Digita il comando sudo updatedb e premi il tasto Invio.
  3. 3
    Utilizza il comando .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.
  4. 4
    Limita l'insieme dei risultati. 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.

3
Ricercare del Testo all'Interno dei File

  1. 1
    Per ricercare delle stringhe di testo all'interno di file, utilizza il comando .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", ciò significa che il testo indicato verrà cercato all'interno di tutti i file presenti nella cartella corrente e in tutte le sottodirectory.
    • 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.
  2. 2
    Elimina il testo aggiuntivo dai risultati della ricerca. 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
    
  3. 3
    Nascondi i messaggi di errore. 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.[5]
    grep -r -i "stringa di ricerca" /percorso/dove/cercare/ 2>/dev/null
    

Informazioni sull'Articolo

Categorie: Linux

In altre lingue:

English: Find a File in Linux, Español: encontrar un archivo en Linux, Русский: найти файл в Linux, Português: Encontrar um Arquivo no Linux, Deutsch: Eine Datei unter Linux finden, Français: trouver un fichier sous Linux, Nederlands: Een bestand zoeken in Linux, Bahasa Indonesia: Mencari Berkas di Linux

Questa pagina è stata letta 13 653 volte.

Hai trovato utile questo articolo?