D'après mon expérience, rmdir préfère travailler sur un répertoire vide. Si vous essayez de supprimer le répertoire foo , je ferais :
$rm foo/*
$rmdir foo
Vous n'avez pas spécifié quel client SFTP vous utilisez. Je suppose donc OpenSSH SFTP (sftp ).
Commande rmdir dans OpenSSH, le client SFTP correspond directement à SSH_FXP_RMDIR Demande de protocole SFTP. La spécification SFTP pour la version 3 (celle utilisée par OpenSSH) mentionne spécifiquement que le SSH_FXP_RMDIR l'opération peut échouer, "si le répertoire spécifié n'est pas vide" (bien qu'il ne semble pas l'obliger).
Si le répertoire n'a pas de sous-répertoires, vous pouvez utiliser rm foo/* (c'est-à-dire la commande OpenSSH SFTP, pas la commande shell) pour supprimer d'abord tous les fichiers du répertoire. Et puis utilisez rmdir .