>>3371 gaji なるほど、ftpd の挙動が変わったのですね。 > ls -aやdirなどは/bin/lsで処理され、lsはftpdの内部コマンドで > 処理される事が多い。 そういう実装が多かった、というのは確かかもしれません。 ただ、ProFTPD のように /bin/ls に一切頼らない ftp サーバもありますので、あくまで「多かった」という程度 だと思います。 > ftpのNLSTが内部コマンドを使用するか、/bin/lsを使用するかは > 設定可能なものでしょうか。 Solaris8, Solaris9 の ftpd を見る限りでは、そのような 設定はできないようです。 http://www.freebsd.org/cgi/man.cgi?query=ftpd&&manpath=SunOS+5.8&format=html http://www.freebsd.org/cgi/man.cgi?query=ftpd&&manpath=SunOS+5.9&format=html > ftp> ls ?????.txt local.txt > 200 PORT command successful. > 550 ?????.txt: No such file or directory. もしクライアント側が LIST を発行しているとしたら (ftp -d で確認できます)、LIST に対して 550 を返すのは RFC 違反ではないかなぁと思いました。 http://hp.vector.co.jp/authors/VA002682/rfc959j.htm より引用 以下の表では、それぞれのコマンドごとの成功・失敗の応答を一覧表にしてあ る。これらは、確実に忠実でなくてはならない。サーバーは応答中の文章を変更 してもよいが、その意味、コード番号により示される動作と指定されたコマンド 応答シーケンスは変更してはならない。 コマンド応答シーケンス LIST 125, 150 226, 250 425, 426, 451 450 500, 501, 502, 421, 530 この解釈が正しいなら、Sun に文句を言えば直してくれる かもしれません。 ただ、ftp は規格が曖昧で、実装依存の塊みたいなものなので、 ls してクライアント側で grep した方が後々のためにもよい かもしれません。ファイルに落として grep するとか、 ftp> ls . "|grep ^.....\.txt$ >hoge" とするとか。 |