com zsh
:
setopt extendedglob
rm -rf -- ^b_<105-110>
Remove todos os arquivos e diretórios não ocultos, exceto aqueles cujo nome começa com b_
e termina em um número decimal cujo valor está compreendido entre 105 e 110.
Se você quiser apenas remover arquivos b_*
:
rm -rf -- b_(*~<105-110>)
~
sendo o operador zsh
glob para exceto .
Ou você poderia fazer:
all_b_files=(b_*)
to_exclude=(b_{105..110})
rm -rf -- ${all_b_files:|to_exclude}
Com ksh93
ou bash -O extglob
(ou zsh -o kshglob
):
set -- b_{105..110} # set positional parameters to b_105 b_106...
IFS='|' # used for joining positional parameters in "$*"
pattern="$*" # prepare extended ksh glob
IFS= # empty IFS to prevent splitting
rm -rf -- !($pattern)