GNU/Linux >> Linux Esercitazione >  >> Linux

Escludere un elenco di directory da Unix Find Command?

Devo creare un elenco di file presenti in una directory ma anche passare un file contenente un elenco di directory da escludere.

Ho visto il suggerimento qui sotto ma non ho avuto fortuna quando si tratta del flag di tipo:

find $dir_name $(printf "! -name %s " $(cat $exclude_file))

C'è un modo per farlo o dovrò creare l'intero elenco e quindi risolverlo rimuovendo quelli che corrispondono parzialmente a quelli nella directory di esclusione.

Risposta accettata:

Dato che il tuo exclude_file contiene percorsi, non nomi, devi usare -path per abbinare le sue voci. Per escludere le sottodirectory delle directory corrispondenti, devi anche -prune loro. Questo dovrebbe funzionare:

find . -type d \( $(printf -- "-path */%s -o " $(cat "$exclude_file")) -false \) -prune -o -print

Se vuoi solo vedere i file, puoi stampare solo i file:

find . -type d \( $(printf -- "-path */%s -o " $(cat "$exclude_file")) -false \) -prune -o -type f -print

Linux
  1. Come escludere directory specifiche dalla copia in Linux

  2. Come escludere il comando dall'elenco della cronologia, ma mantenerlo nella cronologia "live"?

  3. Una guida al comando "Trova" di Linux

  4. Trova la versione di WordPress dalla riga di comando

  5. Come escludere una directory in find . comando

Trova comando in Linux (Trova file e directory)

Comando Ls in Linux (Elenca file e directory)

Copia un file in più directory dalla riga di comando su Linux

Trova N parole più frequenti in un file con un elenco di parole di arresto dalla riga di comando?

Come elencare solo le directory in Linux

Trova comando in Linux/UNIX