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

标签 linux shell ftp

最近我错误地创建了一些包含很多文件和子目录的目录。然后我尝试通过我的 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/

相关文章:

php - 通过 php 脚本在 mysqldump 中出现意外的文件结尾错误

linux - proc stats如何运作

vb.net - 在 FTP 中创建目录

linux - Raspberry Pi 临时网络

c - 系统调用 : maximum arguments in

c - 在 Linux 中运行的进程如何确定它已挂起多长时间?

bash - 对数千个文件进行更快的迭代

macos - 让 Scala 解释器工作

python - 如果不使用python创建文件夹,如何检查目录中是否存在文件夹

java - 从远程服务器获取 channel 表文件