GNU/Linux >> Linux Esercitazione >  >> Linux

Limita Posix Trova a una profondità specifica?

Di recente ho notato che le specifiche POSIX per find non includere il -maxdepth primario.

Per chi non lo conoscesse, lo scopo del -maxdepth primario è limitare il numero di livelli in profondità find scenderà. -maxdepth 0 risulta in solo argomenti della riga di comando in elaborazione; -maxdepth 1 gestirebbe solo i risultati direttamente all'interno degli argomenti della riga di comando, ecc.

Come posso ottenere il comportamento equivalente al -maxdepth non POSIX principale utilizzando solo le opzioni e gli strumenti specificati da POSIX?

(Nota:ovviamente posso ottenere l'equivalente di -maxdepth 0 semplicemente usando -prune come primo operando, ma non si estende ad altre profondità.)

Risposta accettata:

Puoi usare -path per abbinare una data profondità e potare lì. Es.

find . -path '*/*/*' -prune -o -type d -print

sarebbe maxdepth 1, come * corrisponde al . , */* corrisponde a ./dir1 e */*/* corrisponde a ./dir1/dir2 che viene potato. Se utilizzi una directory di partenza assoluta, devi aggiungere un / iniziale al -path anche.


Linux
  1. Come trovare il pacchetto che fornisce un file specifico in Linux

  2. Limitare l'uscita di ricerca ed evitare il segnale 13?

  3. Come cercare in file specifici che corrispondono a un modello?

  4. Ricerca di file NON di proprietà di un utente specifico

  5. Come posso trovare un file specifico da un terminale Linux?

Come trovare una stringa o una parola specifica in file e directory

Trova l'ultimo avvio di una versione specifica del kernel Linux

Come limitare la profondità dell'"albero" per l'elenco di file ricorsivi

grep ricorsivo:esclude directory specifiche

Limita l'accesso SSH a client specifici in base all'indirizzo IP

Trova l'interfaccia per il percorso verso un host specifico