GNU/Linux >> Linux Esercitazione >  >> Linux

Il comando Trova Directory di Linux:spiegato

Potrebbe essere necessario trovare una directory nel tuo sistema operativo basato su Linux e stai soffrendo perché non conosci il comando effettivo per trovare la posizione di diversi file presenti sul tuo sistema operativo basato su Linux. A questo scopo viene utilizzato il comando trova directory di Linux.

Il comando Trova viene utilizzato per cercare la posizione dei file sia nei sistemi basati su Unix che su Linux. Il comando find è incluso nel pacchetto "findutils" ed è presente in tutte le distribuzioni Linux. Puoi cercare directory e file applicando numerose condizioni. L'azione verrà eseguita in base alle condizioni applicate che influiranno sul risultato.

Introduzione al comando trova directory di Linux

La forma più semplice del comando trova è data da:

find [paths] [expression] [actions]

Le altre forme del comando trova vengono fornite come quando viene eseguito il comando trova, cerca directory e file in ogni percorso. Una volta trovata una directory nel percorso fornito, inizia a cercare altri file e directory nello stesso percorso. Questo processo non si interrompe finché non hai cercato tutti i file nel percorso indicato.

find /where/to/look/up criteria action
find /dir/path/look/up criteria action
find /dir/path/look/up -name "name-of-dir"
find /dir/path/look/up -name "pattern"
find /dir/path/look/up -name "name-of-dir" -print
find /dir/path/look/up -name "name-of-dir"
find / -name "name-of-dir"
find / -type d -name "name-of-dir"
find / -type d -name "name-of-dir" 2>/dev/null

Ricerca in tutte le directory e in tutti i file

Se vuoi l'elenco di tutti i file e le directory dal percorso specificato, puoi farlo specificando il percorso. Ad esempio, se desideri un elenco di tutti i file dal percorso usr/share, puoi utilizzare il seguente comando:

find /usr/share

Se desideri elencare i file da più directory contemporaneamente, puoi utilizzare il seguente comando:Una volta eseguito questo comando, un elenco di tutte le directory e i file verrà elencato sulla console dal percorso specificato. L'elenco può essere molto lungo in base al contenuto archiviato.

find /bin /usr/li

Supponiamo di volere un elenco di contenuti presenti direttamente nel tuo lavoro corrente. Può essere fatto rapidamente inserendo un punto (.) dopo il comando trova, proprio come questo:

find .

Se in qualche modo dimentichi di inserire il punto dopo il comando trova, i dati ancora dalla directory di lavoro corrente verranno mostrati solo eseguendo il comando trova.

find

Filtrare gli elementi con i loro nomi

Molte volte, è necessario filtrare elementi diversi con l'aiuto dei loro nomi. Anche il comando trova directory di Linux può aiutarti a farlo.

Supponiamo di voler cercare un file denominato NEW.txt che si trova all'interno della directory /Desktop, quindi è possibile utilizzare l'opzione "-name" come mostrato di seguito:

find Desktop -name NEW.txt

L'utilizzo dell'opzione "-name" fa più distinzione tra maiuscole e minuscole. Per usare un comando senza distinzione tra maiuscole e minuscole puoi usare "-iname" al posto di "-name"

find Desktop -iname new.txt

Entrambe queste opzioni supportano i "caratteri jolly" che vengono utilizzati come segnaposto per caratteri sconosciuti. Il carattere jolly "*" viene utilizzato per mostrare un numero qualsiasi di caratteri sconosciuti mentre "?" viene utilizzato per un singolo carattere sconosciuto.

Per utilizzare questi caratteri jolly, devi inserire il parametro del comando "nome/nome" tra virgolette singole o doppie.

Si supponga di voler cercare tutti i file nella directory /Desktop che includono per ultimo .txt. Quindi può essere fatto con il seguente comando trova directory di Linux:

find Desktop -name '*.txt'

Ora, se vuoi cercare i file che includono tre caratteri nel loro nome, puoi usare "?" carattere jolly racchiuso tra virgolette.

find Desktop -name '???'

Specifica della ricerca di file o directory

Quando usi Linux per trovare il comando directory, puoi anche specificare il tipo di ricerca. Puoi usare l'opzione "-type" per specificare che stai cercando solo file o directory. Ci sono tre parametri di switch "-type" in totale:

  • f - file
  • d - directory
  • l - link simbolici

Se vuoi trovare tutte le directory presenti nel percorso /usr puoi usare:

find /usr -type d

C'è un altro modo per usare gli interruttori combinandoli. Ad esempio, per cercare ".txt" con l'opzione -name e allo stesso tempo specificando il tipo di file tramite l'opzione "-type":

find /usr -type f -name '*.txt'

Come nell'esempio precedente, puoi anche trovare le directory usando il parametro "d" nel percorso /usr. Per trovare le directory con nome "cherrytree":

find /usr -type d -name 'cherrytree'

Interruttore vuoto per trovare file vuoti

È possibile utilizzare l'opzione "-empty" all'interno di Linux all'interno del comando trova directory di Linux. Questa opzione viene utilizzata per trovare file vuoti o directory vuote presenti nel percorso specificato. Per trovare file vuoti nella directory /usr, puoi applicare il seguente comando con l'opzione "-type":

find /usr -type d -empty

Negazione delle corrispondenze nei comandi di ricerca

Se vuoi escludere qualcosa dalla ricerca, puoi usare il comando trova per negare la condizione.

Supponiamo di voler cercare i file senza l'estensione ".Py" nella directory /usr. Puoi includere un punto esclamativo (!) con l'opzione "-name", come mostrato di seguito:

find /usr -type f ! -name '*.py'

Il punto esclamativo può essere utilizzato anche per opporsi a qualsiasi altro interruttore. Ad esempio, nel caso di un'opzione "-empty", puoi usare "!" per cercare directory non vuote al posto di directory vuote.

find /usr -type f ! -empty

Trovare i file in base alla loro proprietà

C'è un'opzione per trovare i file in base alla proprietà dell'utente. È possibile utilizzare l'opzione "-user" per cercare i file relativi a un determinato utente. Se vuoi cercare i file correlati a un utente chiamato "root", puoi applicare il seguente comando per ottenere un elenco di tutti i suoi file.

find / -type f -user root

Invece del nome utente, puoi anche utilizzare l'ID utente per verificare la presenza di tutti i file appartenenti a quell'utente. Se non conosci il tuo ID utente, puoi trovarlo utilizzando il seguente comando.

id -u <username>

Puoi anche cercare per gruppo con l'aiuto del nome del gruppo o dell'ID gruppo. Per trovare l'ID del tuo gruppo, puoi utilizzare il seguente comando.

id -g <username>

Ricerca di file in base alle loro dimensioni

Il comando trova directory di Linux ti consente anche di cercare i file in base alle loro dimensioni. A tale scopo viene utilizzata l'opzione "-size" che si applica solo ai file, non alle directory.

È possibile specificare la dimensione del file inserendo un numero seguito da un alfabeto. Queste lettere vengono utilizzate con l'opzione "-size",

  • c-byte
  • k - kilobyte
  • m - megabyte
  • g - gigabyte

Puoi anche applicare una condizione minore o maggiore di con l'aiuto dei segni "+" e "-".

Ecco un esempio per trovare tutti i file di sistema con una dimensione di 20 KB:

find / -size 20k

Se desideri cercare file di dimensioni superiori a 1 GB, puoi utilizzare:

find / -size +1G

Nel caso in cui desideri file con dimensioni inferiori a 20 MB, puoi utilizzare la seguente istruzione:

find / -size -20M

Eseguire azioni con il comando trova directory

I comandi che abbiamo usato fino ad ora servono solo a mostrare i risultati sul terminale, ma ci sono alcune azioni che possiamo eseguire con l'aiuto del comando find. Possiamo anche eseguire le azioni necessarie come copiare o eliminare un file.

Per eliminare i file

Puoi facilmente eliminare qualsiasi file o directory semplicemente usando "-delete" con il tuo comando trova. Supponiamo di voler eliminare tutti i file vuoti presenti nella directory /Desktop, quindi puoi usare il seguente comando:

find Desktop -type f -empty -delete

Esecuzione dei comandi

L'opzione "-exec" viene utilizzata per eseguire un comando personalizzato. Puoi fare molto con l'aiuto dell'opzione "-exec".

Per copiare tutti i file in una volta, puoi usare:

find ~ -type f -name '*.mp3' -exec cp {} ';'

Nel comando sopra, usiamo ";" per mostrare la fine del comando racchiusa tra virgolette. Le "{}" (parentesi) che vedi vengono utilizzate per definire la posizione.

Ora, quando viene rilevato un file corrispondente in base a quello specificato, viene attivato il comando cp per spostare i file dalla posizione.

Conclusione

Puoi fare molto di più con l'aiuto del comando trova. È utile per coloro che sono abituati alla CLI (command-line-interface) di Linux. Il comando trova viene fornito con molte possibilità che ti aiuteranno a eseguire diverse azioni e fare molto di più. Ci sono anche tutorial sui comandi di spostamento e copia di Linux, dai un'occhiata.


Linux
  1. Padroneggia il comando ls di Linux

  2. Trova il tempo di esecuzione di un comando o di un processo in Linux

  3. Come utilizzare il comando trova di Linux per trovare i file

  4. trova Esempi di comandi in Linux

  5. Comando di spostamento della directory di Linux

Come trovare la dimensione totale di una directory in Linux

Come trovare file con il comando fd in Linux

Il comando timer in Linux

Spiegazione del comando Arping su Linux

15 esempi super utili del comando Trova in Linux

Il comando CP di Linux:spiegato e semplificato