Во-первых, не отлаживайте свои скрипты с помощью sudo, когда-либо!
Выражение "$dir"*.* не означает, что вы думаете. Попробуйте:
echo "$dir"*.*
Чтобы создать список файлов в $dir, используйте find (см. [F7]):
find "$dir" -type f -print
, которые могут быть переданы в ваш сценарий или разделить на параметры с помощью xargs (man xargs).
find и xargs (и sort и некоторые другие) могут обрабатывать имена файлов с пробелами (A file name.txt) с помощью разделителей NUL (0x00). К сожалению, для достижения этой цели есть смесь переключателей линии запятой (-0, -z, --null), см. Страницы man.