最近我错误地创建了一些包含很多文件和子目录的目录。然后我尝试通过我的 FTP 软件 (FileZilla) 删除目录,但它真的很慢,你可以看到删除每个文件需要 2/3 秒。
所以我停止了它并尝试通过 SSH 并使用 rm -rf
命令,然后目标目录在一秒钟内被删除。
我的问题是为什么它在 FTP 上这么慢而在 SSH 上却很快?
非常感谢!
最佳答案
要删除目录树,您必须迭代它,检索所有文件和子目录的列表,然后一个一个地删除它们。
当您使用远程
rm -rf
命令时,它可以直接访问文件系统,因此速度相对较快。虽然 FTP 客户端必须检索文件列表(涉及几个 FTP 命令交换、打开数据通道、列表传输等),然后它必须一个接一个地删除文件。每次删除都涉及发送 FTP 命令,等待响应。所以需要很长时间。
FTP 协议(protocol)中没有与在远程 shell 上执行的 rm -rf
命令等效的“删除整个树”命令。
关于linux - 为什么 Linux 中的 rm 命令可以在几秒钟内删除文件/目录,而在 FTP 中删除却非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36335511/