web-dev-qa-db-fra.com

pourquoi sftp rmdir ne fonctionne pas?

J'essaie de supprimer un répertoire contenant de nombreux fichiers et dossiers de mon espace serveur privé. Je me connecte via SFTP très bien; Je peux accéder à tout le répertoire sans problèmes; Je peux même supprimer des fichiers individuels avec rm. Mais cela me prendrait toujours - alors j'aimerais vraiment faire rmdir sur le dossier le plus élevé que je veux supprimer. Mais quand je fais cela, je reçois

Impossible de supprimer le répertoire: échec

Avez-vous des idées sur ce que je pourrais mal faire?

Merci beaucoup, Sam

14
user1451632

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 le ferais:

$rm foo/*
$rmdir foo
18
Chris

Vous n'avez pas spécifié le client SFTP que vous utilisez. Je suppose donc OpenSSH SFTP (sftpname__).

La commande rmdirdans OpenSSH SFTP mappe directement à SSH_FXP_RMDIR demande de protocole SFTP. La spécification SFTP pour la version 3 (celle utilisée par OpenSSH) indique de manière spécifique que l'opération SSH_FXP_RMDIR peut échouer, "si le répertoire spécifié n'est pas vide" (bien qu'il ne semble pas l'exiger).

Si le répertoire ne contient pas de sous-répertoires, vous pouvez utiliser rm foo/* (ce qui signifie commande OpenSSH SFTP, pas commande Shell) pour supprimer tous les fichiers du répertoire. Et utilisez ensuite rmdirname__.

4
Martin Prikryl