Você deve usar a expansão do nome do caminho ( globbing ) no Bash do que confiar em comandos externos como ls
.
Se um loop for
contiver curingas, o Bash usará globbing por padrão, para que os caracteres especiais não sejam confundidos como se estivessem interpretando os parâmetros fornecidos como uma sequência de texto resultante da substituição de comandos.
E o código será mais limpo e mais portátil, porque a opção --quoting-style=
é específica do GNU ls:
#!/bin/bash
mvfunc ()
{
if [ -s "$1" ]; then
cp -n "$1" currentfiles
/usr/bin/truncate -s 0 "$1"
return 0
fi
}
for filename in /home/telas/zzz/workingfiles/*.odt; do
mvfunc "$filename"
done