为什么 sftp rmdir 不起作用?

use*_*632 21 linux ssh sftp

我正在尝试从我的私人服务器空间中删除一个包含大量文件和文件夹的目录。我通过 SFTP 登录正常;我可以访问整个目录没有问题;我什至可以用 rm 删除单个文件。但这会永远花费我 - 所以我真的很想在我想要删除的最高文件夹上执行 rmdir 。但是当我这样做时,我得到

无法删除目录:失败

关于我可能做错了什么的任何想法?

非常感谢,山姆

Chr*_*ris 25

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

$rm foo/*
$rmdir foo
Run Code Online (Sandbox Code Playgroud)

  • 已编辑,因为 sftp 中的 rm 不存在 -rf 标志。 (2认同)

Mar*_*ryl 5

您尚未指定您使用的 SFTP 客户端。所以我假设 OpenSSH SFTP ( sftp)。

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

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

  • @JariTurkia`sftp`(OpenSSH 命令行客户端)是不可能的。如果您有足够智能的客户端,则可以使用 SFTP(协议)。 (2认同)