Acho que a solução seria uma versão mais simples do que glenn jackman postou , por exemplo
seven_days=$(date -d "7 days ago" +%Y%m%d)
for f in [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]; do
[ -d "$f" ] || continue
(( $f < $seven_days )) && echo rm -r "$f"
done
Remova o echo
se os resultados parecerem corretos.
O teste -d
garante que apenas inspecionemos (remova) diretórios.