为什么 sftp rmdir 不起作用?

为什么 sftp rmdir 不起作用?

我正在尝试从我的私人服务器空间中删除一个包含大量文件和文件夹的目录。我通过 SFTP 登录正常;我可以毫无问题地访问整个目录;我甚至可以使用 rm 删除单个文件。但这会花很长时间 - 所以我真的很想对我想删除的最高文件夹执行 rmdir。但当我这样做时,我得到了

无法删除目录:失败

有什么想法我可能做错了什么?

非常感谢,山姆

答案1

根据我的经验,rmdir 更适合在空目录上工作。如果您尝试删除目录foo,我会这样做:

$rm foo/*
$rmdir foo

答案2

您尚未指定正在使用的 SFTP 客户端。因此我假设使用 OpenSSH SFTP ( sftp)。

OpenSSH SFTP 客户端中的命令rmdir直接映射到SSH_FXP_RMDIRSFTP 协议请求。版本 3(OpenSSH 使用的版本)的 SFTP 规范特别提到该SSH_FXP_RMDIR操作可能会失败,“如果指定的目录不为空”(尽管它似乎没有强制要求这样做)。

如果目录没有子目录,可以先使用rm foo/*(意思是 OpenSSH SFTP 命令,而不是 shell 命令)删除目录中的所有文件。然后使用rmdir

对于更复杂的情况,您需要更智能的 SFTP 客户端。
或者,如果您有 shell 访问权限,请rm -r *在 shell 中使用。

相关内容