29992


bashを使ってシェルプログラムを作っています。

[code]

    ls -l <ファイル名>
    
[/code]

で<ファイル名>に空白が入っていると一つのファイル名と扱ってくれないので、<ファイル名>の中の空白を`\`
(空白の前にエスケープを付ける)ことを行っています。  
しかし、調べ切れていませんが、`[]`や、`()`などもエスケープ（？）しなければいけないようなエラーが発生しています（ここがよくわかりません）

<ファイル名>を一つのファイル名として扱えるにはどのように変換すればいいのでしょうか？  
また<ファイル名>を変換後のものにできるいい方法をご存知であればご教授お願いします。


CC BY-SA 3.0
2016-10-29T16:15:58.000
29989
2016-10-30T08:09:27.507
2016-10-30T08:09:27.507
754
8593
question
bash
bashでのファイル名の取り扱い方法


# ファイル名をベタ打ちするシェルスクリプトの場合

`ls -l '＜ファイル名＞'` で、ファイル名にシングルクォートがはいっている場合以外は対応できます。

# ファイル名をシェル変数から展開する場合

もう少し追記。もし、`<ファイル名>`を変数 v に代入してから使いたいとかならば、次のようにすれば良いです。

[code]

    v='<ファイル名>'
    ls -l "$v"
    
[/code]


CC BY-SA 3.0
2016-10-29T22:30:14.160
29992
2016-10-30T08:08:18.370
2016-10-30T08:08:18.370
754
754
29989
answer