Oui, vous pouvez utiliser plus d'un modèle avec find
:
$ find -name 'master-*' \! -name 'master-2018*' -print0 -prune |
xargs -0 echo rm -fr
(supprimer le echo
si vous êtes satisfait du test)
Vous devez ajouter un -maxdepth 1
prédicat juste après find
si vous voulez uniquement supprimer des fichiers du répertoire courant, c'est-à-dire master-1991
mais pas de subdir/master-1991
.
En bas :
shopt -s extglob
echo rm master-!(2018*)
Supprimer le echo
si cela semble correct.
Ce qui précède utilise la fonction de globalisation étendue de bash pour faire correspondre les fichiers commençant par master-
mais qui n'ont pas 2018
immédiatement après, puis suivi de n'importe quoi (*
).