When I use the \"tab\" key in bash (when you have started to type the filename and you want it to complete), bash escapes the filename correctly, a
bash
I may be a little late to the party but what worked for me is:
ls --quoting-style=shell-escape
This way it also escapes characters like ! or '.
!
'