É por isso que você deve nunca analisar a saída de ls . Especialmente se você puder fazer a mesma coisa com um curinga simples.
#!/usr/bin/env bash
for i in /localDir/*; do
[[ "$i" = */upload.sh ]] && continue
ncftpput -R -v -u myUsername -p myPassword myAddress /remoteDir "$i"
done