Answers:
以我的经验,rmdir倾向于在空目录上工作。如果您要删除目录foo
,我将执行以下操作:
$rm foo/*
$rmdir foo
rm foo/*
但由于foo/
包含非空目录而无法正常工作。还幸运的rsync
是,我在本地创建了一个空目录,然后用于rsync -rv --delete empty_local_dir/ host.example.org:/foo/
删除远程foo/
目录下的所有内容。之后,可以rmdir foo
通过SFTP。
您尚未指定正在使用的SFTP客户端。因此,我假设使用OpenSSH SFTP(sftp
)。
rmdir
OpenSSH SFTP客户端中的命令直接映射到SSH_FXP_RMDIR
SFTP协议请求。版本3的SFTP规范(由OpenSSH使用的规范)明确提到该SSH_FXP_RMDIR
操作可能会失败,“如果指定的目录不为空”(尽管它似乎没有强制要求)。
如果目录没有子目录,则可以使用rm foo/*
(意味着OpenSSH SFTP命令,而不是shell命令)首先删除目录中的所有文件。然后使用rmdir
。
rm -r *
使用SFTP。我认为这不可能。
sftp
(OpenSSH命令行客户端)无法使用。如果您有足够的客户端,则可以使用SFTP(协议)。