Isso ilustra por que você NUNCA deve confiar em analisar a saída do comando ls para iterar sobre o conteúdo do diretório - use um simples glob de shell em vez de, por exemplo. para corresponder a qualquer nome de arquivo terminado em um dígito
for f in $mydir/*[0-9]
do
if [ -e $mydir/ ]
.
.
done
A respeito de como ele está produzindo a linha cp -i driver.sh 32/ , você pode ver que quando você digita dígitos na saída de ls -la , ele corresponde à linha total: 32K , bem como aos nomes de diretório desejados.