Re: ftpd の glob 展開について
In article <050330104945.M1400468@XP.doga.jp>
Masamichi Takatsu <taka2@doga.jp> writes:
> 高津@ドーガです。
> ftpクライアントのソースをちょっと見てみたのですが、glob はクライアント側の
> 設定を変えるコマンドで、mget・mput のglob展開はローカルでやってますね。
なるほど。それを前提とすると、
> > put test?.txt
> を実行した場合、
> ・ローカル側には'test?.txt'という名前のファイルが存在する必要がある
> ・リモート側に存在する test?.txt にマッチするファイル数によって
> ・0個の場合→ 'test?.txt'という名前でアップロードされる
> ・1個の場合→ そのファイル名でアップロード(上書き)される
> ・2個以上の場合→ エラーになる
> という挙動になります。
この挙動は、「glob はローカル」という期待とは違いますね。サー
バに「?」を送るクライアントも悪いような気もしますが、「?」を
展開するサーバも悪いと言えます。
と言っても、そういう実装が標準的だとするとしょうがないのかも
しれないけれど。
トラブルに合わないようにするには、クライアントが「?」を送ら
ないようにしてもいいということですかね。
> ・リモート側にマッチするファイルが2個ある場合
> ftp> cd ../test2
> ftp> ls
> -rw-rw-r-- 1 taka2 wheel 0 Mar 30 10:34 test1.txt
> -rw-rw-r-- 1 taka2 wheel 0 Mar 30 10:34 test2.txt
> ftp> put test?.txt
> local: test?.txt remote: test?.txt
> 229 Entering Extended Passive Mode (|||54483|)
> 550 ambiguous
FTP のプロトコルで 550 は正当な応答のようですが、ambiguous
という意味はもともとなさそう。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735