最近我创建了一些包含大量文件和子目录的dir。然后我尝试通过我的FTP软件(FileZilla)删除目录,但它真的很慢,就像你可以看到删除每个文件花费2/3秒。
所以我停止了它并通过SSH尝试并使用rm -rf
命令,然后在一秒钟内删除了目标目录。
我的问题是为什么在快速通过SSH时它的速度如此之慢?
非常感谢!
答案 0 :(得分:4)
要删除目录树,您必须对其进行迭代,检索所有文件和子目录的列表,然后逐个删除它们。
使用远程 rm -rf
命令时,它可以直接访问文件系统,因此速度相对较快。
虽然FTP客户端必须检索文件列表(涉及几个FTP命令交换,打开数据通道,列表传输等),然后它必须逐个删除文件。每次删除都涉及发送FTP命令,等待响应。所以需要很长时间。
没有"删除整棵树" FTP协议中的命令,它等同于在远程shell上执行的rm -rf
命令。