Используйте while read вместо for
. Самый безопасный способ, который я нашел для итерации над списками имен файлов, заключается в том, чтобы направить на while read:
find ~/Downloads -type f | while read filename; do
echo "found file called $filename";
done
Как вы можете видеть, оно помещает полное имя файла (разделение по строкам вместо пробела) в имя переменной, которое вы указываете, здесь $filename.
Однако из исходного вопроса, если действительно требуется, список файлов, разделенных запятыми, тогда вам даже не нужно итерации, просто используйте tr для перевода разделителей строк в запятую:
find ~/Downloads -type f | tr '\n' ','