Ich hatte gerade das Problem, dass ich auf meinem Webserver Dateien liegen hatte, deren Namen Umlaute enthielten, die offenbar nicht UTF-8 codiert waren und sich nun mittels FileZilla nicht löschen ließen.
Das passierte mir durch eine probeweise Datensicherung in meine NextCloud-Instanz. Die wollte ich danach wieder löschen, weil mein Webspace zu wenig Platz dafür bietet. Dabei bemerkte ich, wie mein FileZilla die Dateien wegen der „kaputten“ Dateinamen nicht löschen konnte.
Also musste eine Lösung her, mit der ich das per Kommandozeile lösen konnte. Der Unix-Standard ftp kann das nicht unbedingt. Ich erinnerte mich aber an lftp, eine deutlich aufgebohrte Variante.
Der Aufruf der FTP-Verbindung ist syntaktisch etwas ungewohnt. Das übliche ftp fragt den Usernamen und das Passwort interaktiv ab. lftp erfordert den Aufruf zusammen mit beidem in der Form
lftp <host> -u <username>,<password>
Ein Aufruf ohne beides wird nicht bemängelt; offenbar ergibt das dann aber die unübliche anonyme Verbindung, die spätestens beim Directory-Listing mit ls mangels Authorisierung schief geht.
Die sehr umfangreichen Kommandos von lftp bekommt man entweder hier linux.die.net/man/1/lftp oder im eingeloggten Zustand über das Kommando „?“ präsentiert.
Um das Problem mit den Umlauten zu lösen, muss man sich wirklich mit cd in jedes Zielverzeichnis hangeln und sich dort mit ls die Files anzeigen lassen. Hier erscheinen die richtigen Umlaute in der Anzeige und mit „rm <filename“ (den Namen bekommt man ja nach ls prima mit der Mausmarkierung und mittlere Maustaste über die Zwischenablage transportiert) kann man die Dateien einzeln löschen. Leere Verzeichnisse werden mit „rmdir <dirname>“ gelöscht. Beiden funktioniert anscheinend nicht über „!rm *.endung“ oder „!rmdir -R …“ als Systemkommandos wie sonst bei ftp üblich. Eventuell ist das eine Sicherheitsmaßnahme gegen allzu flottes Löschen.
Das ist also keineswegs ein bequemer Weg. Ich habe also zuvor mit FileZilla grob „fast alles“ gelöscht und es blieben nur einige wenige Dateien liegen, deren Ort und Namen ich nun kannte. Das hat den Aufwand minimiert.