为什么Linux中的rm命令可以在几秒钟内删除文件/目录,而FTP中的删除速度非常慢

时间:2016-03-31 13:55:19

标签: linux shell ftp

最近我创建了一些包含大量文件和子目录的dir。然后我尝试通过我的FTP软件(FileZilla)删除目录,但它真的很慢,就像你可以看到删除每个文件花费2/3秒。

所以我停止了它并通过SSH尝试并使用rm -rf命令,然后在一秒钟内删除了目标目录。

我的问题是为什么在快速通过SSH时它的速度如此之慢?

非常感谢!

1 个答案:

答案 0 :(得分:4)

要删除目录树,您必须对其进行迭代,检索所有文件和子目录的列表,然后逐个删除它们。

  • 使用远程 rm -rf命令时,它可以直接访问文件系统,因此速度相对较快。

  • 虽然FTP客户端必须检索文件列表(涉及几个FTP命令交换,打开数据通道,列表传输等),然后它必须逐个删除文件。每次删除都涉及发送FTP命令,等待响应。所以需要很长时间。

没有"删除整棵树" FTP协议中的命令,它等同于在远程shell上执行的rm -rf命令。