こんにちは。 Takahashiさん、喜瀬さん、レスありがとうございます。
特殊文字がファイルパスに現れたら、それしか方法を知らなかったものですから毎回 \ でエスケープしておりました。
ちなみに、シェルに渡されたクォートやファイル名パターン(ワイルドカード) がどのような処理を経てコマンドに渡されるかについては、ちょうど 12 月に シェルのアドベントカレンダー(日めくりバトン企画)で書いたばかりでした。
シェルの展開順序に気をつけよう - Qiita http://qiita.com/emasaka/items/a59335c74220b3641639
もし、このへんにご興味があればどうぞ。
リンク先の記事を読んでみました。 bashにも色々と気をつけないといけない点があることを知ることができ、 おかげさまで勉強になりました。
さらに余談です。 Bashなどでは、ファイル名を途中まで入力してタブキーを押すと 補完してくれますが、クオートで始めた場合とクオートなしの場合、 それぞれ試してみてください。あと、ダブルクオートの場合も。
Tabキーによる補完でコマンド実行してみました。
$ ls -l /media/usb0/新しいファイル\ (cp&paste).txt -rw-r--r-- 1 debmania debmania 6080 1月 5 09:05 /media/usb0/新しいファイル (cp&paste).txt $ ls -l '/media/usb0/新しいファイル (cp&paste).txt' -rw-r--r-- 1 debmania debmania 6080 1月 5 09:05 /media/usb0/新しいファイル (cp&paste).txt $ ls -l "/media/usb0/新しいファイル (cp&paste).txt" -rw-r--r-- 1 debmania debmania 6080 1月 5 09:05 /media/usb0/新しいファイル (cp&paste).txt
というようになりました。クォートなしの時でもエラーが出ないようにきちんとエスケープしてくれるのですね。 ターミナルって賢いなぁ・・・
--- Kenji Matsui