[debian-users 00039] Re: ターミナルに日本語含むファイルパス貼り付けで文字化け

Kenji Matsui kmatsui @ earth.kiramori.net
2017年 1月 13日 (金) 16:57:10 JST


こんにちは。
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



debian-users メーリングリストの案内