Sì, puoi utilizzare più di un pattern con find
:
$ find -name 'master-*' \! -name 'master-2018*' -print0 -prune |
xargs -0 echo rm -fr
(rimuovi il echo
se sei soddisfatto del test)
Dovresti aggiungere un -maxdepth 1
predicato subito dopo find
se vuoi solo rimuovere i file dalla directory corrente, cioè master-1991
ma nessun subdir/master-1991
.
In bash:
shopt -s extglob
echo rm master-!(2018*)
Rimuovi il echo
se sembra corretto.
Quanto sopra utilizza la funzionalità di globbing estesa di bash per confrontare i file che iniziano con master-
ma che non hanno 2018
immediatamente successivo, quindi seguito da qualsiasi cosa (*
).