GNU/Linux >> Linux Esercitazione >  >> Linux

Trova file e directory in Linux come un professionista

Questa guida ti mostrerà come utilizzare i comandi "trova" e "localizza" per trovare file e directory sui tuoi file system Linux.

Sommario

  • Trova file e directory in Linux usando il comando trova
    • Trova i file per nome
    • Trova file per nome parziale
    • Trova i file per dimensione
    • Trova file utilizzando timestamp
    • Trova file per proprietario
    • Trova file in base alle autorizzazioni
    • Trova le directory per nome
  • Trova file e directory in Linux usando il comando locate
    • Trova i file per nome
    • Trova file per nome parziale
    • Limita risultati di ricerca
    • Visualizza il numero di voci corrispondenti
    • Ottieni informazioni su individuare database
  • Conclusione

Ci sono momenti in cui vuoi accedere a un file specifico ma non riesci a trovarlo sul tuo sistema Linux. Sebbene ci siano molti modi con cui possiamo cercare e individuare file e directory su Linux, il più semplice e veloce è probabilmente tramite il terminale.

Il find command è una delle utility da riga di comando più importanti e utilizzate di frequente in Linux.

Trova file e directory in Linux usando il comando trova

Il find di Linux command è un potente strumento che consente agli amministratori di sistema di individuare e gestire file e directory in base a un'ampia gamma di criteri di ricerca. Supporta la ricerca per file, cartella, nome, data di creazione, data di modifica, proprietario e autorizzazioni.

Il find comando viene utilizzato per trovare file e directory ed eseguire operazioni successive su di essi. Cerca i file e le directory in ogni percorso in modo ricorsivo. Pertanto, quando find comando incontra una directory all'interno del percorso specificato, cerca altri file e directory al suo interno.

Trova file per nome

La sintassi generale di find il comando è:

find [path] [options] [expression]

Analizziamo questa sintassi:

  • path : Definisce la directory iniziale in cui find cercherà i file.
  • options : Controlla find comportamento del processo e metodo di ottimizzazione.
  • expression : questo attributo è composto da opzioni, modelli di ricerca e azioni separate da operatori.

L'uso più comune del comando trova è cercare un file in base al suo nome. Il -type f l'opzione indica al sistema che stiamo cercando un file. Per trovare un file utilizzando il nome del file, utilizza il -name flag con il comando predefinito.

Ad esempio, per cercare un file denominato report.pdf nel /home directory, dovresti usare il seguente comando:

find /home -type f -name report.pdf

Come sai, Linux fa distinzione tra maiuscole e minuscole riguardo ai nomi dei file , quindi se stai cercando un file chiamato Report.pdf , il comando mostrato sopra non restituirà alcun risultato. In tal caso dovrai usare il -iname opzione invece di -name .

Il -iname l'opzione esegue una ricerca senza distinzione tra maiuscole e minuscole , quindi possiamo farlo:

find /home -type f -iname report.pdf

Questo comando individuerà un file che ha uno dei seguenti nomi:report.pdf , Report.pdf , REPORT.pdf , ecc.

Trova file per nome parziale

Puoi utilizzare meta-caratteri del nome file come l'asterisco (* ), ma dovresti inserire un carattere di escape (\ ) davanti a ciascuno di essi o racchiuderli tra virgolette.

Ad esempio, per trovare tutti i file che terminano con un .pdf , potresti eseguire:

find /home -type f -name '*.pdf'

che è uguale a:

find /home -type f -name \*.pdf

Allo stesso modo, per trovare tutti i file sul tuo sistema Linux i cui nomi iniziano con report , potresti eseguire:

find /home -type f -name 'report*'

Trova file per dimensione

Utilizzando find comando, possiamo anche ottenere facilmente qualcosa che potrebbe sembrare complicato:trovare file più grandi o più piccoli di una determinata dimensione .

La -size opzione su find ci consente di cercare file di una dimensione specifica. Il + e - i prefissi significano "maggiore di" e "minore di", come al solito.

L'esempio seguente cercherà tutti i file maggiori di 1 Gigabyte. Nota l'uso di + firmare:

find /home -type f -size +1G

Nell'esempio sopra, il suffisso G denota Gigabyte. Gli altri suffissi popolari disponibili sono:

  • c :byte.
  • k :kilobyte.
  • M :Megabyte.

Quanto sopra find comando è stato utilizzato per cercare tutti i file di dimensioni superiori a quelle specificate. Successivamente, find command example cercherà tutti i file con dimensioni inferiori a 200 kilobyte. Nota l'uso di - firmare:

find /home -type f -size -200k

Ora probabilmente ti chiedi come trovare file in Linux di una certa dimensione . Ad esempio, puoi trovare file di dimensioni comprese tra 100 Megabyte e 120 Megabyte utilizzando il comando seguente:

find /home -type f -size +100M -size -120M

Trova file utilizzando timestamp

Linux assegna timestamp specifici a ogni singolo file nel file system. Il find comando può anche cercare file in base alla loro ultima modifica , accedere o modificare l'ora.

Il -mtime l'opzione viene utilizzata per specificare il numero di giorni in cui è presente il file. L'espressione può essere utilizzata in due modi:

  • -mtime +N trova i file modificati più di N giorni fa (per maggiore di).
  • -mtime -N trova i file modificati inferiori a N giorni fa (per meno di).

Ad esempio, se inserisci +3 , troverà tutti i file da /home directory più vecchia di 3 giorni.

find /home -type f -mtime +3

Allo stesso modo, se vogliamo trovare tutti i file che sono cambiati nelle ultime 24 ore:

find /home -type f -mtime -1

Allo stesso modo, puoi utilizzare -mmin N espressione per fare affidamento sui minuti anziché sui giorni.

Ad esempio, questo comando trova tutti i file da /home directory modificata nell'ultimo minuto.

find /home -type f -mmin -1

Inoltre, possiamo anche comporre espressioni. Ecco come trovare i file in Linux che sono stati modificati meno di 60 minuti fa e più di 30 minuti fa:

find /home -type f -mmin -60 -mmin +30

Trova file per proprietario

Per trovare i file di proprietà di un particolare utente o gruppo, utilizza il -user-group opzioni.

Ad esempio, per trovare i file di proprietà dell'utente john nel /home cartella del server:

find /home -type f -user john

Trova tutti i file appartiene a un gruppo chiamato www-data nel /home directory:

find /home -type f -group www-data

Trova file in base alle autorizzazioni

Il -perm l'opzione consente agli utenti di cercare file con un particolare insieme di autorizzazioni .

Il comando seguente troverà i file con l'autorizzazione di esattamente 644 nella directory corrente.

find /home -type f -perm 644

L'uso di - opzione significa "almeno questo livello di autorizzazione è impostato e qualsiasi autorizzazione superiore".

find /home -type f -perm -644

Questo esempio mostra tutte le risorse in /home directory con almeno 644 permessi. Ciò significa che i file con i permessi come 777 , 745 , 666 , 655 , 654 , ecc, corrisponderebbero, mentre i file con autorizzazioni 642 , 611 , 600 , 544 , ecc, non corrisponderebbero.

Trova directory per nome

Tutti gli esempi che abbiamo visto finora restituiscono file. Tuttavia, se devi cercare solo le directory, puoi utilizzare il -type d interruttore.

In altre parole, puoi impedire il find comando in Linux dalla ricerca di altri tipi di file eccetto le directory utilizzando -type d flag (d significa directory).

Per trovare una cartella denominata scripts nel /home directory, esegui:

find /home -type d -name scripts

Allo stesso modo, tutte le altre opzioni mostrate finora sono applicabili anche durante la ricerca di directory.

Per ulteriori informazioni su find comando in Linux, consulta la sua pagina del manuale.

Trova file e directory in Linux usando il comando locate

Mentre find è senza dubbio una delle utility da riga di comando più popolari e potenti per la ricerca di file in Linux, non è abbastanza veloce per le situazioni in cui sono necessari risultati istantanei.

Il locate il comando è più veloce di find comando perché utilizza un database creato in precedenza, mentre il find il comando ricerca in tempo reale, attraverso tutte le directory e i file effettivi.

Se locate non è installato, puoi installarlo facilmente usando il gestore di pacchetti della tua distribuzione Linux.

Su Ubuntu o qualsiasi altro sistema basato su Debian, digita il seguente comando:

sudo apt install mlocate

Se stai utilizzando Fedora o CentOS, utilizza invece questo comando:

sudo dnf install mlocate

Gli utenti di Arch Linux devono eseguire:

sudo pacman -S mlocate

Prima di find può essere utilizzato, sarà necessario creare il database. Questo viene fatto con il updatedb comando, che (come suggerisce il nome) aggiorna il database.

sudo updatedb

Il database verrà aggiornato automaticamente su base giornaliera, ma puoi anche aggiornarlo tu stesso in qualsiasi momento in modo da ottenere risultati sempre aggiornati.

Trova file per nome

Il locate il comando è molto facile da usare. Tutto quello che devi fare è passargli il nome del file che vuoi cercare.

locate report.pdf

Proprio come il find comando, find è configurato per elaborare le query con distinzione tra maiuscole e minuscole. Per avere locate comando ignora la distinzione tra maiuscole e minuscole e mostra i risultati per le query sia maiuscole che minuscole, devi utilizzare il -i opzione.

locate -i rEpoRT.pdf

Trova file per nome parziale

Se vuoi cercare tutti i nomi di file che hanno la stringa .pdf in essi, puoi farlo usando locate nel modo seguente:

locate '*.pdf'

Limita i risultati della ricerca

Puoi limitare i risultati della ricerca a un numero richiesto per evitare la ridondanza con i risultati della ricerca utilizzando il -n opzione.

Ad esempio, se desideri solo 10 risultati dalle tue query, puoi digitare il seguente comando:

locate -n 10 '*.pdf'

Mostra il numero di voci corrispondenti

Per contare il numero di occorrenze di un nome file o di un modello di ricerca utilizzando il comando locate, invoca il -c opzione come mostrato.

locate -c '*.pdf'

Ottieni informazioni su locate Database

Per raccogliere ulteriori informazioni sul database locate mlocate.db che find ha catalogato, utilizza il -S opzione:

locate -S
Database /var/lib/mlocate/mlocate.db:
	72376 directories
	1142596 files
	98622214 bytes in file names
	33950606 bytes used to store database

Per ogni evenienza, ecco la pagina man per locate comando.

Conclusione

Esistono due utilità di ricerca di file più utilizzate accessibili agli utenti Linux, chiamate findlocate . Entrambi sono buoni modi per trovare file sul tuo sistema. Sta a te decidere quale di questi strumenti è appropriato in ogni situazione.

Questo articolo dovrebbe darti una comprensione fondamentale di come trovare file sui tuoi sistemi Linux. Anche se le opzioni sono state presentate singolarmente, dovresti ricordare che possono essere combinate per poter specificare ancora di più i file che stai cercando.


Linux
  1. Trova file e directory su Linux con il comando find

  2. Come scoprire le directory e i file principali (spazio su disco) in Linux

  3. Linux:directory standard e/o comuni su OS Unix/linux?

  4. Come trovare ed eliminare directory e file vuoti in Linux

  5. Trova e copia i file

Come rinominare file e directory in Linux

Comando Ls in Linux (Elenca file e directory)

Come comprimere file e directory in Linux

3 modi per trovare file e directory in Linux

Come trovare ed eliminare directory vuote in Linux

Trova facilmente file e directory su Linux