Bash のシェルスクリプトで半角スペースを含むファイル名を扱うには、環境変数 IFS (Internal Field Separator) を改行だけにすればよい。
#!/bin/sh IFS_BACKUP=$IFS IFS=$'\n' # スクリプトをここに書く IFS=$IFS_BACKUP
滅多に遭遇しないながらも、ずっと昔から困っていた。昔は Windows からリネームソフトを使ったり、Emacs の wdired でスペース無しに置換したりしていた。さっそく Emacs の sh ファイルのテンプレートに追加した。