Spesso è necessario cercare determinati tipi di file in ambienti Linux e non conosciamo il modo corretto per cercarli correttamente senza perdere tempo.
Per le distribuzioni Linux, è stato sviluppato un comando chiamato find che è stato sviluppato per filtrare ricorsivamente gli oggetti nel filesystem in base a un meccanismo condizionale. Con questo comando find possiamo cercare un file o una directory nel suo file system.
Se includiamo il parametro -exec, i file possono essere trovati ed elaborati immediatamente all'interno dello stesso comando.
1. Trova file per nome o estensione Comandi Linux
Possiamo usare find dalla riga di comando per individuare un file specifico per nome o estensione.
La sua sintassi è:
trova / home / nome utente / -nome "* .estensione"Ad esempio, cercheremo i file che terminano con .gz:
INGRANDIRE
2. Comandi pratici e sintassi da utilizzare con i comandi di find Linux
Con il comando find abbiamo alcune opzioni di parametro come:
trova opzioni inizio/percorso espressioneL'attributo options controllerà il comportamento e il metodo di ottimizzazione del processo di ricerca. L'attributo home / path definirà la directory di primo livello in cui find inizierà il filtraggio.
L'attributo expression controlla i test che cercano nella gerarchia di directory per produrre output.
Ad esempio, possiamo eseguire quanto segue:
trova -O3 -L / var / www / -name "* .html"Questo comando abilita il livello massimo di ottimizzazione (-O3) e permette di seguire i collegamenti simbolici (-L) per cercare nell'intero albero di directory al percorso /var/www/ i file che terminano con .html.
INGRANDIRE
3. Opzioni e ottimizzazione con i comandi Trova Linux
La configurazione predefinita di Find per la ricerca ignorerà i collegamenti simbolici (file di collegamento), se vogliamo che find segua e prenda i collegamenti simbolici, possiamo aggiungere l'opzione -L al comando come abbiamo visto in precedenza. Trova ha tre (3) livelli di ottimizzazione che sono -O1, -O2 e -O3.
L'ottimizzazione -O1 è l'impostazione predefinita e ti obbliga a cercare per filtrare in base al nome del file prima di eseguire tutti gli altri test.
L'ottimizzazione a livello -O2 dà la priorità ai filtri dei nomi di file, come in -O1, quindi esegue tutti i filtri dei tipi di file prima di procedere con altre condizioni che richiedono più risorse. L'ottimizzazione del livello -O3 consente a find di eseguire un'ottimizzazione più profonda e riordina tutti i test in base alla relativa spesa e alla probabilità di risultati migliori.
Alcune delle opzioni sono:
È un filtro basato sul nome del primo file
-O1 (predefinito)
Usa prima il nome del file e poi il tipo di file
-O2
Riordina risultatiConsente alla ricerca di riordinare automaticamente la ricerca in base all'uso efficiente delle risorse e alla probabilità di risultati migliori.
-O3
Cerca la directory corrente e tutte le sottodirectory X livelli in profondità
-maxprofondità X
Cerca indipendentemente dal caso del testo
-nomino
Restituisce solo i risultati che non corrispondono al caso di test
-non
Eseguire una ricerca di file
-tipo f
Cerca nelle directory
-tipo d
4. Trova i file in base al tempo di modifica dei comandi Linux
Il comando find ha la capacità di filtrare una gerarchia di directory in base all'ultima modifica del file.
La sintassi sono:
find / -name "* conf" -mtime 8 find / home / utente / -name "* conf" -mtime 2Il primo comando visualizzerà un elenco di tutti i file nell'intero file system che terminano con i caratteri conf e che sono stati modificati negli ultimi 8 giorni. Il secondo comando filtra la directory home dell'utente per i file con nomi che terminano con caratteri conf e che sono stati modificati nei 2 giorni precedenti.
Usa Grep per trovare file basati sul contenuto Comandi LinuxIl comando find può solo filtrare la gerarchia di directory in base a un nome di file e metadati, quindi se hai bisogno di cercare in base al contenuto del file, usa uno strumento come grep.
Useremo la seguente sintassi:
Trovare. -type f -exec grep "esempio" '{}' \; -StampaQuesto trova tutti gli oggetti nella gerarchia di directory corrente (.) Che è un file (-tipo f) e quindi esegue il comando grep "esempio" per ogni file che soddisfa le condizioni. I file corrispondenti vengono stampati sullo schermo (-print). Le parentesi graffe ({}) sono un segnaposto per i risultati della ricerca. Il {} è racchiuso tra virgolette singole (') per evitare che grep restituisca un nome file non corretto. Il comando -exec termina con un punto e virgola "(;)", che deve essere preceduto da "(\;)" per evitare l'interpretazione da parte della shell.
Come trovare ed elaborare i file utilizzando il comando Trova Comandi LinuxPossiamo usare l'opzione -exec per eseguire comandi su tutti gli oggetti che corrispondono all'espressione di ricerca.
La sua sintassi è:
Trovare. -name "rc.conf" -exec chmod o + r '{}' \;Questo filtrerà tutti gli oggetti nella gerarchia corrente (.) Per i file denominati rc.conf ed eseguirà il comando chmod o + r per modificare i permessi dei risultati della ricerca.
Quindi find è un alleato per la ricerca completa di file su Linux.