高津@ドーガです。

元々は FreeBSD-users-jp に出した話なのですが、そっちでは反応が無かったので
こちらに書いてみます。

FreeBSD 標準の ftpd で、「{ を含むファイルはアップロードできない」という
問題が発生しました。で、調査したところ、ftpd は指定されたファイル名について

・*、?、{foo,bar}、[abc] といったglob展開を行う

ということがわかりました。そのため、{ を含むファイルを普通に put すると、
{ 以下がglob展開で消えてしまっていたようです。

でも、ソースを見ると、上記の通りglob展開は行うのですが、その結果として
2項目以上に展開される場合にはエラーになるようになってます。

これでは、glob のうまみが無いというか、何のために glob してるのか意味不明
です。

他のftpdはどうなんだろうと、とりあえず wu-ftpd のソースを見たら、こちらも
glob展開らしきコードが入ってます。

もしかして規格で決まっているのか? と思い RFC 959 を読んでみたのですが、
そのあたりの記述はまったくありませんでした。

おそらく歴史上の理由か何かとその互換性のための機能だと思うのですが、
いったいなぜこういう仕様になっているのかご存じの方はおられないでしょうか?


PROJECT TEAM DoGA 高津正道                            taka2@doga.jp
                                                   TBD00456@nifty.ne.jp
                     PROJECT TEAM DoGAのホームページ → http://doga.jp/
3月28日(月) 今日のマーフィーの法則    [ダウリングの写真術の法則]
絶好のシャッターチャンスを1回見逃すと、機材を2つ買い足したくなる。