Trovare un file in un sistema Linux può essere difficile se non sai come fare. Il modo migliore per trovare i file è utilizzare diversi comandi del terminale. La padronanza di questi comandi può darti il controllo completo sui tuoi file e sono molto più potenti delle semplici funzioni di ricerca su altri sistemi operativi.
Passi
Metodo 1 di 3: utilizzo di "localizza"
Passaggio 1. Installa il file
individuare funzionalità.
Il comando locate generalmente funziona molto più velocemente di find, perché funziona su un database della struttura dei file. Non tutte le distribuzioni Linux vengono fornite con la funzionalità di localizzazione installata, quindi inserisci i seguenti comandi per tentare di installarla:
- Digita sudo apt-get update e premi Invio.
- Puoi installarlo in Debian e Ubuntu in questo modo: digita sudo apt-get install mlocate e premi Invio. Se locate è già installato, vedrai il messaggio mlocate è già la versione più recente.
- In Arch Linux, usa il gestore di pacchetti pacman: pacman -S mlocate
- Per Gentoo, usa emerge: emerge mlocate
Passaggio 2. Aggiorna il tuo
individuare Banca dati.
Il comando locate non sarà in grado di trovare nulla finché il suo database non sarà stato creato e aggiornato. Questo accade automaticamente ogni giorno, ma puoi anche aggiornarlo manualmente. Dovrai farlo se vuoi iniziare a usare localizzare immediatamente.
Digita sudo aggiornatob e premi Invio
Passaggio 3. Utilizzare
individuare per eseguire semplici ricerche.
Il comando locate è veloce, ma non ha tante opzioni quanto il comando find. Puoi eseguire una ricerca di file di base più o meno allo stesso modo del comando trova.
individuare -i "*.jpg"
- Questo comando cercherà nell'intero sistema i file con estensione.jpg. Il carattere jolly * funziona allo stesso modo del comando find.
- Come il comando find, -i ignora il caso della tua query.
Passaggio 4. Limita i risultati della ricerca
Se le tue ricerche restituiscono troppi risultati da gestire, puoi ridurli utilizzando l'opzione -n, seguita dal numero di risultati che desideri visualizzare.
individuare -n 20 -i "*.jpg"
- Verranno visualizzati solo i primi 20 risultati che corrispondono alla query.
- Puoi anche usare | pipe per inviare i risultati a less per un facile scorrimento.
Metodo 2 di 3: utilizzo di "trova"
Passaggio 1. Cerca un file in base al nome del file
Questa è la ricerca più elementare che puoi eseguire utilizzando il comando trova. Il comando seguente cercherà la query nella directory corrente e in qualsiasi sottodirectory.
trova -iname "nome file"
L'uso di -iname invece di -name ignora il caso della tua query. Il comando -name fa distinzione tra maiuscole e minuscole
Passaggio 2. Impostare la ricerca in modo che inizi nella directory principale
Se vuoi cercare nell'intero sistema, puoi aggiungere il modificatore / alla query. Questo dirà a find di cercare tutte le directory a partire dalla directory principale.
trova / -iname "nome file"
- Puoi iniziare la ricerca in una directory specifica sostituendo / con un percorso di directory, come /home/pat.
- Puoi usare un. invece di / per forzare l'esecuzione della ricerca solo nella directory e nelle sottodirectory correnti.
Passaggio 3. Utilizzare il carattere jolly
* per cercare qualcosa che corrisponda alla parte della query.
Il carattere jolly * può essere utile per trovare qualcosa se non si conosce il nome completo o se si desidera trovare tutto con un'estensione specifica.
trova /home/pat -iname "*.conf"
- Ciò restituirà tutti i file.conf nella cartella utente (e nelle sottodirectory) di Pat.
- Puoi anche usarlo per trovare tutto ciò che corrisponde a parte del nome del file. Ad esempio, se hai molti documenti relativi a wikiHow, puoi trovarli tutti digitando "*wiki*".
Passaggio 4. Semplifica la gestione dei risultati di ricerca
Se ottieni molti risultati di ricerca, può essere difficile esaminarli. Usa il | carattere e inviare i risultati della ricerca al programma di filtraggio "less". Ciò può consentire di scorrere e filtrare i risultati molto più facilmente.
find /home/pat -iname "*.conf" | meno
Passaggio 5. Trova tipi specifici di risultati
È possibile utilizzare i modificatori per restituire solo tipi specifici di risultati. È possibile cercare file normali (f), directory (d), collegamenti simbolici (l), dispositivi a caratteri (c) e dispositivi a blocchi (b) utilizzando il modificatore destro.
trova / -type f -iname "nomefile"
Passaggio 6. Filtra i risultati della ricerca per dimensione
Se hai molti file con nomi simili, ma conosci la dimensione che stai cercando, puoi filtrare i nostri risultati per dimensione.
trova / -size +50M -iname "nome file"
- Ciò restituirà risultati di 50 megabyte o più grandi. Puoi usare + o - per cercare dimensioni maggiori o minori. Omettendo il + o - cercheranno i file esattamente la dimensione specificata.
- Puoi filtrare per byte (c), kilobyte (k), megabyte (M), gigabyte (G) o blocchi da 512 byte (b). Si noti che il flag della dimensione fa distinzione tra maiuscole e minuscole.
Passaggio 7. Utilizzare gli operatori booleani per combinare i filtri di ricerca
È possibile utilizzare gli operatori -and, -or e -not per combinare diversi tipi di ricerche in una sola.
find /travelphotos -type f -size +200k -not -iname "*2015*"
Il comando troverà i file nella directory "travelphotos" che hanno una dimensione maggiore di 200 kilobyte ma non hanno "2015" in nessun punto del nome del file
Passaggio 8. Cerca i file per proprietario o permessi
Se stai cercando di trovare un file specifico di proprietà di un utente o file con determinate autorizzazioni, puoi restringere la ricerca.
find / -user pat -iname "nome file" find / -group utenti -iname "nome file" find / -perm 777 -iname "nome file"
Gli esempi precedenti cercheranno gli utenti, i gruppi o le autorizzazioni specificati per la query. Puoi anche omettere la query del nome del file per restituire tutti i file che corrispondono a quel tipo. Ad esempio, find / -perm 777 restituirà tutti i file con i permessi 777 (nessuna restrizione)
Passaggio 9. Combina i comandi per eseguire azioni quando vengono trovati i file
È possibile combinare il comando find con altri comandi in modo da poterli eseguire sui file restituiti dalla query. Separare il comando find e il secondo comando con il flag -exec, quindi terminare la riga con {};
trova. -type f -perm 777 -exec chmod 755 {};
Questo cercherà nella directory corrente (e in tutte le sottodirectory) i file con autorizzazioni 777. Utilizzerà quindi il comando chmod per modificare i permessi in 755
Metodo 3 di 3: ricerca di testo nei file
Passaggio 1. Utilizzare il
grep comando per cercare stringhe di testo all'interno dei file.
Se stai cercando un file che contenga una determinata frase o stringa di caratteri, puoi utilizzare il comando grep. Un comando grep di base è formattato come segue:
grep -r -i "query di ricerca" /percorso/della/directory/
- Il -r imposta la ricerca su "ricorsiva", quindi cercherà nella directory corrente e in tutte le sottodirectory qualsiasi file che contenga la stringa di query.
- Il -i indica che la query non fa distinzione tra maiuscole e minuscole. Se vuoi forzare la ricerca a prestare attenzione al caso, ometti l'operatore -i.
Passaggio 2. Ritaglia il testo extra
Quando esegui una ricerca grep come sopra, vedrai il nome del file insieme al testo con la query corrispondente evidenziata. Puoi nascondere il testo corrispondente e visualizzare semplicemente i nomi e i percorsi dei file includendo quanto segue:
grep -r -i "query di ricerca" /percorso/della/directory/ | taglia -d: -f1
Passaggio 3. Nascondi i messaggi di errore
Il comando grep restituirà un errore quando tenta di accedere alle cartelle senza i permessi corretti o viene eseguito in cartelle vuote. Puoi inviare i messaggi di errore a /dev/null, che li nasconderà dall'output.
grep -r -i "query di ricerca" /percorso/della/directory/ 2>/dev/null