Auf einem Linux-Rechner, bei dem ich nur Shell-Zugriff auf die Kommandozeile habe, gibt es eine Datei, die ich nicht ohne Weiteres löschen, verschieben oder kopieren kann. Ich vermute, der Grund dafür ist der mit einem Bindestrich beginnende Dateiname, der als Aufrufparameter interpretiert wird. Wenn ich statt des Dateinamens den absoluten oder relativen Pfad verwende, klappt es. Geht das auch eleganter?
Sie liegen mit Ihrer Vermutung richtig: Der Bindestrich am Anfang des Dateinamens ist der Schuldige. Alternativ zur Angabe eines Pfades können Sie solche Dateien auch löschen, indem Sie nach dem Befehl rm und allen Optionen zwei Bindestriche anhängen und danach den Dateinamen, also etwa:
rm -i – -privat.txt
Das funktioniert auch mit allen anderen Befehlen. Die beiden Bindestriche teilen der Bash mit, dass nun keine weiteren Optionen mehr folgen. Für Rechner, bei denen man nur Shell-Zugriff hat und bei denen gar keine grafische Oberfläche installiert ist, bietet sich übrigens der Midnight Commander als Dateimanager an, der keine Probleme mit solchen Dateinamen hat. Er gehört bei fast allen Distributionen zum Lieferumfang, muss aber meistens nachinstalliert werden.
(
amu)