C'è un modo per evitare di trovare da scavare verso ricorsivamente nelle sottodirectory?
Domanda
Quando faccio:
$ find /
Ricerca tutto il sistema.
Come posso evitare questo?
(Questa domanda viene da un "risposta"un'altra questione.)
Soluzione
G ' day,
Volevo solo ampliare il suggerimento di Jon utilizzare -prune.Non è il modo più semplice di trovare le opzioni per l'utilizzo, ad esempio per la ricerca nella directory corrente il comando trova, assomiglia a questo:
find . \( -type d ! -name . -prune \) -o \( <the bit you want to look for> \)
questo fermerà trovare la discesa in sotto-cartelle all'interno di questa directory.
In sostanza, si dice, "potare tutto ciò che è una directory, il cui nome non è ".", cioèla dir corrente."
Il comando trova evals da sinistra a destra, per ogni elemento trovato, nella directory corrente, così dopo il completamento del primo elemento, cioèla prugna segmento, e continua con l'articolo abbinato nella seconda -O (d) espressione.
HTH.
ciao Rob
Altri suggerimenti
Prendere in considerazione:
-maxdepth n
True if the depth of the current file into the tree is less than
or equal to n.
-mindepth n
True if the depth of the current file into the tree is greater
than or equal to n.
Si potrebbe essere meglio utilizzando i caratteri jolly.Per esempio, se si desidera trovare tutte ksh script nella directory corrente:
$ ls *.ksh
Utilizzare il -prune l'opzione.
Si può anche fare
echo /specific/dir/*.jpg
come è la shell che si espande il jolly.Digitando
ls *.jpg
è equivalente a scrivere
ls foo.jpg bar.jpg
dato foo.jpg e bar.jpg sono tutti i file che terminano con ".jpg", nella directory corrente.