2016-03-31 13 views
0

最近、誤ってたくさんのファイルとサブディレクトリを含むディレクトリが作成されました。そして私は自分のFTPソフトウェア(FileZilla)でディレクトリを削除しようとしましたが、実際には遅く、各ファイルを削除するのに2/3秒かかるのがわかります。FTPでの削除が遅いうちに、Linuxのrmコマンドでファイル/ディレクトリを数秒で削除できる理由

私はそれを停止し、SSHを通してそれを試して、rm -rfコマンドを使用すると、ターゲットディレクトリがちょうど2分後に削除されました。

私の質問は、SSHで高速でFTPで遅いのはなぜですか?

多くの感謝!

+0

sshで認証されたら、Unixのbashシェルを使用しています。 OSの動作は高速に実行されます。あなたが経験する唯一の遅れは、 'rm -rf'コマンドをリモートマシンに送信するのにかかる時間です。つまり、なぜFileZillaがもっと時間がかかるのか分かりません。一度に1つずつ削除操作を送信している可能性があります。 sftpコマンドラインを使ってみましたか(sftpの 'rmdir'コマンドを参照してください)? –

+0

@ HEADLESS_0NEこの点でSFTPはFTPと同じです。ツリーの削除コマンドはありません。 –

答えて

4

ディレクトリツリーを削除するには、ディレクトリツリーを反復し、すべてのファイルとサブディレクトリのリストを取得し、それらを1つずつ削除する必要があります。

  • あなたはリモートrm -rfコマンドを使用すると、それはファイルシステムに直接アクセスを持っているので、それは比較的速いです。

  • FTPクライアントはファイルリスト(FTPコマンド交換のカップル、データチャネルのオープン、転送の一覧表示など)を取得しなければならず、ファイルを1つずつ削除する必要があります。それぞれの削除は、FTPコマンドを送信し、応答を待機します。だから時間がかかります。

リモートシェル上で実行rm -rfコマンドと同等になるFTPプロトコルには「ツリー全体を削除」コマンドがありません。

+0

THX!その意味は、削除作業をしているときにFTPリフレッシュ(ページを定期的にリフレッシュ)することができるからです。 – WEIZ

関連する問題