GNU/Linux >> Linux Esercitazione >  >> Linux

Come cercare file dalla riga di comando di Linux

La ricerca di file è relativamente facile quando si utilizza una GUI. Ma in alcuni ambienti come i server senza GUI, è necessario cercare i file utilizzando la riga di comando.

C'è un potente comando in Linux che ti aiuta a cercare file e cartelle chiamato find . In questo articolo, discuteremo del find comando con alcuni esempi.

Cos'è il comando find in Linux?

Il find Il comando consente di cercare in modo efficiente file, cartelle e dispositivi di caratteri e blocchi.

Di seguito è riportata la sintassi di base di find comando:

find /path/ -type f -name file-to-search

Dove,

  • /path è il percorso in cui dovrebbe essere trovato il file. Questo è il punto di partenza per cercare i file. Il percorso può anche essere/ o . che rappresentano rispettivamente la directory principale e quella corrente.
  • -type rappresenta i descrittori di file. Possono essere uno dei seguenti:

fFile normale come file di testo, immagini e file nascosti.

dRubrica . Queste sono le cartelle in esame.

lLink simbolico . I collegamenti simbolici puntano a file e sono simili alle scorciatoie.

cDispositivi a caratteri . I file utilizzati per accedere ai dispositivi dei caratteri sono chiamati file dei dispositivi dei caratteri. I driver comunicano con i dispositivi a caratteri inviando e ricevendo singoli caratteri (byte, ottetti). Gli esempi includono tastiere, schede audio e mouse.

bBlocca dispositivi . I file utilizzati per accedere ai dispositivi a blocchi sono chiamati file dei dispositivi a blocchi. I driver comunicano con i dispositivi a blocchi inviando e ricevendo interi blocchi di dati. Gli esempi includono USB, CD-ROM

  • -name è il nome del tipo di file che vuoi cercare.

Esempi del comando trova

Ora conosciamo la sintassi di find comando, diamo un'occhiata ad alcuni esempi.

Come cercare i file per nome o estensione

Supponiamo di dover trovare i file che contengono "stile" nel loro nome. Useremo questo comando:

find . -type f -name style*

Risultato

Ora supponiamo di voler trovare file con un'estensione particolare come .html . Modificheremo il comando in questo modo:

find . -type f -name *.html

Risultato

Come cercare file nascosti

I file nascosti sono rappresentati da un punto all'inizio del nome del file. Normalmente sono nascosti, ma possono essere visualizzati con ls -a nella directory corrente.

Possiamo modificare il find comando come mostrato di seguito per cercare i file nascosti.

find . -type f -name ".*"

Risultato

Come cercare file di registro e file di configurazione

I file di registro di solito hanno l'estensione .log , e possiamo trovarli così:

 find . -type f -name "*.log"

Risultato

Allo stesso modo, possiamo cercare file di configurazione come questo:

 find . -type f -name "*.conf"

Come cercare altri file per tipo

Possiamo cercare file di blocchi di caratteri fornendo c a -type :

find / -type c

Allo stesso modo, i file di blocco del dispositivo possono essere trovati utilizzando b :

find / -type b

Come cercare nelle directory

Nell'esempio seguente, troviamo le cartelle denominate lib . Nota che stiamo usando -type d .

find . -type d -name "lib*"

Risultato

💡 Suggerimento:possiamo identificare le directory guardando il d flag nell'output di ls -lrt .

Come cercare i file per dimensione

Un uso incredibilmente utile di find il comando consiste nell'elencare i file in base a una dimensione particolare.

find / -size +250MB

Altre unità includono:

  • G :GigaByte.
  • M :Megabyte.
  • K :KiloByte
  • b :byte.

Basta sostituire con l'unità pertinente.

find <directory> -type f -size +N<Unit Type>

Come cercare i file per ora di modifica

find /path -name "*.txt" -mtime -10 

  • -mtime +10 significa che stai cercando un file modificato 10 giorni fa.
  • -mtime -10 significa meno di 10 giorni.
  • -mtime 10 Se salti + o – significa esattamente 10 giorni.

Di seguito sono riportati i contenuti della mia home directory:

Applichiamo un esempio nella mia home directory.

find . -type f -name ".*" -mtime +10

Esempi pratici di find con script bash

Possiamo combinare find con rm o mv per creare script bash significativi che possono essere automatizzati.

Supponiamo di voler creare uno script che sposti i file di registro più vecchi di 7 giorni in un percorso di backup. Da lì, elimina i file di registro più vecchi di 30 giorni. Possiamo creare uno script e programmarlo con cron . Puoi saperne di più su cron lavori qui.

Vediamo lo script:

#!/bin/bash
# Script to move from logs older than 7 days to backup logs path: /app/backup_logs/ESB0*

# move ESB01 logs to backup
find /logs/esb01/audit  -name "*.tar.gz" -mtime +7 -exec mv {} app/backup_logs/ESB01/ \;

# Remove logs from backup path after 30 days
find /app/backup_logs/ESB01 -name "*.tar.gz" -mtime +30  -exec rm {} \;

Nota che stiamo usando exec con find . Fondamentalmente, exec esegue il comando fornito ( mv e rm nel nostro caso). {} è il segnaposto che contiene i risultati del comando. Infine, forniamo il delimitatore ; . Poiché non vogliamo che la shell interpreti il ​​punto e virgola, esciamo con \ .

Lo script condiviso è molto utile per archiviare e rimuovere i log.

Conclusione

In questo articolo abbiamo studiato il find comando in dettaglio e imparato a cercare i file per nome, tipo, dimensione e tempo di modifica.

Spero che questo tutorial ti sia stato utile.

Condividi i tuoi pensieri su Twitter!

Puoi leggere i miei altri post qui.

Risorse:immagini banner dalle illustrazioni di Office di Storyset e Canva.


Linux
  1. 8 suggerimenti per la riga di comando di Linux

  2. Come installare il software dalla riga di comando di Linux

  3. Trovare file nella riga di comando (come fare per)

  4. Come trovare file in CentOS 8 sulla riga di comando

  5. Migrazione di un server Linux dalla riga di comando

Come scoprire l'indirizzo IP pubblico dalla riga di comando su Linux

Come gestire i file dal terminale Linux

Come trovare file sulla riga di comando di Ubuntu

Ripgrep – Lo strumento di ricerca da riga di comando più veloce per Linux

Come trovare file con il comando fd in Linux

Come trovare l'indirizzo IP nella riga di comando di Linux