Ja, Sie können mehr als ein Muster mit find verwenden :
$ find -name 'master-*' \! -name 'master-2018*' -print0 -prune |
xargs -0 echo rm -fr
(Entfernen Sie die echo wenn Sie mit dem Probelauf zufrieden sind)
Sie sollten eine -maxdepth 1 hinzufügen Prädikat direkt nach find wenn Sie nur Dateien aus dem aktuellen Verzeichnis entfernen möchten, dh master-1991 aber kein subdir/master-1991 .
In bash:
shopt -s extglob
echo rm master-!(2018*)
Entfernen Sie die echo wenn es richtig aussieht.
Das obige verwendet die erweiterte Globbing-Funktion von Bash, um Dateien zu finden, die mit master- beginnen die aber nicht 2018 haben unmittelbar danach, dann gefolgt von irgendetwas (* ).