Questo post spiega cos'è il comando 'trova' e come funziona. Inoltre, vedremo come utilizzare il comando escludendo le directory in Linux. Continuare a leggere!
Lavorare con il comando Trova
Il comando 'trova' in Linux aiuta a individuare i file e le directory per evitare di doverli trovare manualmente. Utilizza la seguente sintassi:
find
Ecco un esempio in cui proviamo a trovare un file chiamato 'linuxhint.c' nella home directory:
L'output fornisce il percorso assoluto per trovare il file di destinazione. Supponiamo di voler trovare i file utilizzando un modello. Supponiamo di voler trovare qualsiasi file di testo nel formato Documenti/ sul nostro sistema Linux. Specifichiamo il nostro comando come illustrato di seguito:
Nota come il comando 'trova' emette tutte le directory che contengono i file di testo. Questo è un semplice esempio di utilizzo del comando 'trova' di Linux.
Come escludere le directory in Linux Find
Quando esegui il comando 'trova', cerca nella directory e nelle sottodirectory specificate. Utilizzare uno dei seguenti tre metodi per escludere una sottodirectory nella ricerca:
1. L'opzione Potare
Per la dimostrazione, usiamo il linuxhint/ . Possiamo vedere che ha tre sottodirectory come mostrato nell'immagine seguente:
Se utilizzata con -print, l'opzione 'prune' aiuta a escludere qualsiasi sottodirectory specificata quando si lavora con il comando 'find'. Nell'immagine precedente, possiamo usare il comando 'trova' e dare il percorso alla directory Linuxhint. Quindi, specificare di escludere dir2 dall'output della ricerca.
Eseguiamo il nostro comando come segue:
find /home/kyle/Desktop/linuxhint/ -path /home/kyle/Desktop/linuxhint/dir2 -prune -o -printNota come dir2 non viene visualizzato da nessuna parte nell'output, il che conferma che siamo riusciti a escluderlo.
Possiamo anche eseguire lo stesso comando in una versione abbreviata come mostrato di seguito:
Puoi anche escludere numerose directory. Per questo, usiamo l'opzione -o. L'esempio seguente esclude dir1 e dir3 per lasciare solo dir2. Se si è certi che il file o la cartella che si desidera trovare non si trovino nelle altre directory, questa opzione riduce l'output della ricerca.
2. Tramite l'opzione 'No'.
Nella query di ricerca è possibile aggiungere 'not' per specificare quali directory escludere. La sua implementazione è più semplice dell'opzione prune.
Ecco la sintassi da utilizzare:
find [percorso] -type f -not -path '*/directory-da-escludere/*'Supponiamo di voler escludere dir1 nell'output di ricerca 'find' che abbiamo implementato con l'opzione prune. Eseguiamo il comando come segue:
Trovare . -type f -not -path '*/dir2/*'
Otteniamo lo stesso output di quando usiamo l'opzione prune. La directory specificata è esclusa; solo le sottodirectory rimanenti vengono visualizzate nell'output della ricerca.
3. Tramite il '!' Opzione
L'ultimo metodo per escludere le directory nel comando 'find' di Linux è aggiungere il '!' operatore. Funziona come l'operatore 'not' e la sua sintassi è quasi identica.
find [percorso] -tipo f ! -path '*/directory-da-escludere/*'Supponiamo di ripetere l'esempio precedente per escludere la dir2 utilizzando il carattere '!' operatore. Otteniamo ancora lo stesso risultato. Solo una sezione del comando che usiamo è cambiata.
Questi sono i tre modi per escludere le directory nel comando 'trova' di Linux.
Conclusione
Il comando 'trova' di Linux è utile per individuare rapidamente i file e le cartelle. Migliora in quanto puoi escludere le directory nel tuo comando di ricerca per ridurre l'output della ricerca. Per escludere le directory, puoi usare 'prune', 'not' o '!' opzioni. Questo post ha discusso di come funzionano le tre opzioni con gli esempi forniti di esclusione delle directory. Provalo!