UPDATE: Dado que find é a fonte dos dados, eu usaria uma matriz:
readarray -t to_remove < <(find ...)
number_of_files=${#toremove[@]}
rm -i "${to_remove[@]}"
Se você é uma versão pré-4 de bash , use este loop para preencher a matriz.
while IFS= read -r fname; do
to_remove+=("$fname")
done < <(find ...)
Nada disso funciona com arquivos que contenham novas linhas, mas acho que é mais fácil ignorar esse caso, embora em bash 4 você possa dispensar a chamada para find :
shopt -s nullglob globstar
to_remove=( "$WORKING_PATH"/**/* )
Suponho que você esteja preenchendo to_remove de um arquivo. Não faça isso; leia diretamente do arquivo.
while IFS= read -r fname <&3; do
rm -i "$fname"
done 3< file.txt
Isso também usa um descritor de arquivo separado para ler o arquivo, de modo que a entrada padrão possa ser usada por rm .
(Se você estiver realmente lendo o texto to_remove , eu usaria apenas um arquivo temporário:
printf "%s" "$to_remove" > tmp.txt
while IFS= read -r fname <&3; do
rm -i "$fname"
done 3< tmp.txt
rm tmp.txt