|
ftp上のlsの挙動に関する質問です。 ftpサーバはsolaris8とsolaris10です。 (両方OS標準のftpサーバです。) クライアントはwindows98です。 solaris8に接続してlsをフルパスですると、 結果がファイル名だけ帰ってきます。 例) ftp> ls /etc 結果 vfstab しかし solaris10に接続してlsをフルパスですると、 結果がフルパスで帰ってきます。 例) ftp>ls /etc 結果 /etc/vfstab solaris10の結果をsolaris8にあわすことが出来ないでしょうか? 結果ファイルを使って後の処理をしているので違う結果になると いままで作ったプログラムを手直ししないといけないのでなんとかしたいです。 よろしくお願いします。 |
|
>>4178 あんどろめだ 1. C のプログラムが Shift_JIS 文字列を吐くよう修正する。普通に printf などで出力しているなら、ソースを Shift_JIS に変更して から再コンパイル (それで動作するかどうかは要検証)。 2. 出力を Shift_JIS に変換してから受け取る Ex: result=`command | iconv -f eucJP -t sjis` >>4179 シロネコ Solaris9 以降は wu-ftpd ベースらしいので、 >>3374 とーりすがり のように /bin/ls に変更してやれば変わるかもしれません (デフォルトでは /bin/ls を使っていないようなので)。それでもダメなら、ディレクトリ名を 削除する以下のような自作の ls を作って指定するとか (あまりに場当たり的 ではありますが)。 #!/bin/sh /bin/ls "$@" | sed 's|/.*/||'" あと、結果ファイル処理プログラムを書き換えないまでも、リクエストの 出し方を変えてよいのであれば - cd /etc してから ls する (まぁそれができるならわざわざ質問 しないでしょうけど) - ls /etc "| sed 's|/.*/||'" と、別プログラムをかませる (Windows98 に sed はないので適当に工夫する。ただし Windows の ftp.exe で "| ..." が効くかどうかは不明) とか。 |