Ich versuche ein Verzeichnis mit vielen Dateien und Ordnern von meinem privaten Server zu entfernen. Ich melde mich über SFTP an. Ich kann problemlos auf das gesamte Telefonbuch zugreifen; Ich kann sogar einzelne Dateien mit rm löschen. Aber das würde ewig dauern - also würde ich wirklich gerne rmdir für den höchsten Ordner ausführen, den ich entfernen möchte. Aber wenn ich das tue, bekomme ich
Verzeichnis konnte nicht entfernt werden: Fehler
Irgendwelche Gedanken darüber, was ich falsch machen könnte?
Vielen Dank, Sam
Antworten:
Nach meiner Erfahrung arbeitet rmdir lieber in einem leeren Verzeichnis. Wenn Sie versuchen, das Verzeichnis zu löschen
foo
, würde ich Folgendes tun:quelle
rm foo/*
funktionierte nicht, weilfoo/
nicht leere Verzeichnisse enthielten. Zum Glückrsync
war das auch erlaubt und ich habe lokal ein leeres Verzeichnis angelegt und dannrsync -rv --delete empty_local_dir/ host.example.org:/foo/
alles unterhalb des entferntenfoo/
Verzeichnisses entfernt. Danach war es möglich,rmdir foo
über SFTP.Sie haben nicht angegeben, welchen SFTP-Client Sie verwenden. Ich gehe also von OpenSSH SFTP (
sftp
) aus.Der Befehl
rmdir
im OpenSSH-SFTP-Client wird direkt derSSH_FXP_RMDIR
SFTP-Protokollanforderung zugeordnet. In der SFTP-Spezifikation für Version 3 (die von OpenSSH verwendet wird) wird ausdrücklich darauf hingewiesen, dass derSSH_FXP_RMDIR
Vorgang möglicherweise fehlschlägt, "wenn das angegebene Verzeichnis nicht leer ist" (obwohl dies anscheinend nicht vorgeschrieben ist).Wenn das Verzeichnis keine Unterverzeichnisse enthält, können Sie mit
rm foo/*
(dh OpenSSH SFTP-Befehl, nicht Shell-Befehl) zuerst alle Dateien im Verzeichnis entfernen. Und dann benutzermdir
.quelle
rm -r *
mit SFTP um ? Ich denke nicht, dass es möglich ist.sftp
(OpenSSH-Befehlszeilenclient) ist dies nicht möglich . Es ist mit SFTP (Protokoll) möglich, wenn Sie einen ausreichend intelligenten Client haben.