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 (*
).