Como você está usando ksh
, isso deve ser apenas uma questão:
(FIGNORE='@(.|..)'; cd /data/"$USER"/SAS/ &&
echo rm -rf -- !(SE|Rejet|Acq|Archiv|Cloture|Emis|Ident|Irr*|Recep*)/)
(remova echo
quando estiver satisfeito)
O que removeria todos os diretórios, exceto aqueles que correspondam a essa lista (deixando apenas os arquivos que não são de diretório).
Remova a parte FIGNORE
se você não quiser remover diretórios ocultos.
Note que ele também considerará links simbólicos para diretórios (e dependendo da implementação de rm
ou excluirá o link simbólico ou o conteúdo do alvo).
Com find
, você faria:
cd /data/"$USER"/SAS &&
find . ! -name . -prune \
! -name SE \
! -name Reject \
! -name Acq \
! -name Archiv \
! -name Cloture \
! -name Emis \
! -name Ident \
! -name 'Irr*' \
! -name 'Recep*' -type d -exec echo rm -rf {} +