• ベストアンサー

FTP コマンドのスクリプトで

FTP コマンドのスクリプトによって、接続先のあるディレクトリ以下全部再帰的に消去したい場合、 どのように普通書くものでしょうか。 教えていただけたら嬉しく思います。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • _akane
  • ベストアンサー率58% (10/17)
回答No.2

失礼いたしました。コマンド間違えてました。 複数ファイルを削除するのにy/nを聞かれないように prompt として 削除したいディレクトリの最下層のディレクトリ内の ファイルを削除し、上の階層へ。 そこでもファイルを全て削除してから上の階層へ。 以下その繰り返しとなるようですね。 mdelete ディレクトリ名/* rmdir ディレクトリ名 中身のあるディレクトリは削除できないので ディレクトリ内のファイルをすべて削除してから ディレクトリの削除の流れになります。

michiko_
質問者

お礼

回答ありがとうございます。 おっしゃるように、接続先のあるディレクトリ名だけを指定して、それ以下全部のファイルとディレクトリを消すのは無理そうだったので、現在接続先にあるファイルをローカル側に保存しておいて、そのリストをもとに接続先のファイルを削除するようにスクリプトを作成しました。 どうもありがとうございました。

その他の回答 (1)

  • _akane
  • ベストアンサー率58% (10/17)
回答No.1

中身が空のディレクトリなら  rmdir ディレクトリ名 で削除できますが、中身のあるディレクトリを 削除するのでしたら  rm -r ディレクトリ名 で可能だと思います。 しかしそのユーザに権限がないと削除できません。 権限がある場合で、強制的に削除するなら  rm -rf ディレクトリ名 とすれば 削除するファイルごとに y/n を聞かれずに 削除できるはずです。

michiko_
質問者

お礼

回答ありがとうございます。 やってみたのですが、接続先に対して、つまりFTPコマンド中の場合は、-r などのオプションはきかないようです。 ちなみにOSはlinuxです。 ftp 中に rm -r ディレクトリ名 とすると、 550 -r: No such file or directory というエラーが表示され、 -r をファイル名だと思ってしまうようです。 なにかよい方法はないものでしょうか。