POSIX 7 solution:
find . ! -path . -type d
Per questo caso particolare (.
), golf migliore rispetto alle mindepth
soluzione (24 vs 26 caratteri), anche se questo è probabilmente un po 'più difficile digitare a causa dello !
.
Per escludere altre directory, questo campo da volontà meno bene e richiede una variabile per la secchezza:
D="long_name"
find "$D" ! -path "$D" -type d
Il mio albero decisione tra !
e -mindepth
:
- sceneggiatura? Utilizzare
!
per la portabilità.
- sessione interattiva su GNU?
- esclude
.
? Lancia una moneta.
- esclude
long_name
? Utilizzare -mindepth
.
fonte
2013-06-30 10:32:03
se è necessario escludere più percorsi, basta 'find/path /! -path "/ percorso/primo"! -path "/ path/second" 'è questo solo modo? –
@VincentDeSmet vuoi escludere solo quei percorsi, o in realtà non ricorrere a loro? Se solo i percorsi, puoi usare 'find /! -regex '/ \ (a \ | b \) /.*' 'o più semplicemente, passa attraverso grep. Per non recidivi, quanto sopra sarebbe molto inefficiente e dovresti usare '-prune': http://stackoverflow.com/questions/1489277/how-to-use-prune-option-of-find-in-sh –
my problema era il seguente: volevo cancellare ricorsivamente tutto all'interno di una directory tranne per 1 sottodirectory. Stavo usando 'find' con' grep' per escludere la directory ma la directory principale era ancora lì, facendo sì che tutto fosse cancellato comunque. –