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 à l'ensemble du répertoire sans problème; Je peux même supprimer des fichiers individuels avec rm. Mais cela me prendrait une éternité - je voudrais donc vraiment faire rmdir sur le dossier le plus élevé que je veux supprimer. Mais quand je fais ça, je reçois
Impossible de supprimer le répertoire: échec
Avez-vous des idées sur ce que je pourrais faire de mal?
Merci beaucoup, Sam
Réponses:
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:la source
rm foo/*
ne fonctionnait pas carfoo/
contenait des répertoires non vides. Heureusement, cela a égalementrsync
été autorisé et j'ai créé un répertoire vide localement , puis utilisérsync -rv --delete empty_local_dir/ host.example.org:/foo/
pour supprimer tout ce qui se trouve sous lefoo/
répertoire distant . Ensuite, il a été possible dermdir foo
via SFTP.Vous n'avez pas spécifié quel client SFTP vous utilisez. Je suppose donc OpenSSH SFTP (
sftp
).La commande
rmdir
du client OpenSSH SFTP correspond directement à laSSH_FXP_RMDIR
demande de protocole SFTP. La spécification SFTP pour la version 3 (celle utilisée par OpenSSH) mentionne spécifiquement que l'SSH_FXP_RMDIR
opération peut échouer, "si le répertoire spécifié n'est pas vide" (bien qu'il ne semble pas le rendre obligatoire).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 utilisezrmdir
.la source
rm -r *
avec SFTP. Je ne pense pas que ce soit possible.sftp
(client de ligne de commande OpenSSH). C'est possible avec SFTP (protocole), si vous avez un client suffisamment intelligent.