Você precisa usar tar --no-recursion
ou find ... ! -type d
, porque cada vez que seu find está listando um diretório, o tar recursivamente copia tudo.
Além disso, você não poderia simplesmente evitar a cópia e fazer um -C dir .
para cada diretório em sua matriz, por exemplo:
args=()
for f in "${folders_to_backup[@]}"
do args+=("-C" "$f" ".")
done
tar -czf "/home/myuser/backup.tgz" "${args[@]}" --exclude ...