Dateien und Ordner mit Pluszeichen im Dateienamen fehlen?

Die Dateien/Ordner sind als externer Speicher einer Synology mit WebDAV eingebunden.

Enthalten die das Pluszeichen im Dateinamen, so werden diese Dateien weder synchronisiert noch angezeigt, sind also nicht vorhanden im Nextcloud-Dateisystem obwohl die auf der Synology vorhanden sind.

Warum ist das so?

Ganz genau kann ich es Dir auch nicht erklären, jedoch habe ich auch schon etliche Probleme mit unerlaubten Zeichen in Dateinamen gehabt. Ganz besonders schlimm, wenn Nutzer ganze Sätze in den Ordner- oder Dateinamen schreiben und ein Punkt (.) am Ende steht. Dann funktioniert die Synchronisation in keine Richtung mehr.

Zu dem speziellen Problem mit dem Plus (+) kannst Du Dir ja einmal diese Seite anschauen.

Ungültige Namen wg. WebDAV-Konventionen

Tilde (~)
Ein Nummernzeichen (#)
Prozent (%)
Kaufmännisches und-Zeichen (&)
Sternchen (*)
Geschweifte Klammern ({})
Umgekehrter Schrägstrich (\)
Doppelpunkt (:)
Spitze Klammern (<>)
Fragezeichen (?)
Schrägstrich (/)
Pluszeichen (+)
Pipe (|)
Anführungszeichen(“)

Bei der Einbindung von externem Speicher über SMB/CIFS oder mit SFTP werden noch etwas mehr Sonderzeichen toleriert.

Vielen Dank für den Link aber die Liste stimmt nicht.

Diese Zeichen funktionieren im Dateinamen und man kann die mit WebDAV einbinden:

Tilde (~)
Ein Nummernzeichen (#)
Prozent (%)
Kaufmännisches und-Zeichen (&)
Geschweifte Klammern ({})

In Microsoft Windows verbotene Zeichen im Dateinamen:

Umgekehrter Schrägstrich (\)
Schrägstrich (/)
Doppelpunkt (:)
Sternchen (*)
Fragezeichen (?)
Anführungszeichen(“)
Spitze Klammern (<>)
Pipe (|)

Aber das Pluszeichen ist kein “verbotenes Zeichen” in Microsoft Windows und müsste also funktionieren.

Tut es aber nicht!

Das Pluszeichen ist aber ein verbotenes Zeichen in Linux, dem Betriebssystem, auf dem die meisten Nextcloudinstanzen laufen. - Ob MacOS und Android als Client das Pluszeichen akzeptieren, ist mir nicht bekannt.
Gleiches gilt auch für die drei Arten von Hochkommata.

Da halte ich für ein Gerücht. Teste es selbst…

echo "Text in einer Datei mit einem + Zeichen im Dateinamen" > Datei_mit_einem_+_Zeichen_im_Dateinamen
cat datei_mit_einem_+_Zeichen_im_Dateinamen

Ausgabe:

Text in einer Datei mit einem + Zeichen im Dateinamen

Das einzig wirklich verbotene Zeichen in einem UNIX oder Linux Filessystem ist der Forward Slash (/) und, der NULL ( \0) character, und dann gibt es einige problematische, die je nach Kontext Probleme machen können, wozu auch das (+) Zeichen gehört.

Warum das (+) Zeichen aber gerade mit WebDAV Probleme machen soll, erschliesst sich mir nicht. Zumindest der Nextcloud Client auf meinem Laptop mit Fedora Linux, hat eine Datei mit dem Namen 1+1 gerade anstandslos synchronisiert.

Lasse mal die Unterstriche vor und hinter dem Pluszeichen weg und nimm je ein Leerzeichen…

Das Pluszeichen im Dateinamen funktioniert nur dann nicht wenn man die Datei als externen Speicher mit WebDAV in Nextcloud einbindet.

Der Effekt tritt auf auf wenn der externe Speicher eine Synology ist.

Andere WebDAV-Speicher als Synology habe ich nicht getestet.

In diesem Fall braucht man die Anführungszeichen beim Dateinamen:

echo "Text in einer Datei mit einem + Zeichen im Dateinamen" > "Datei mit einem + Zeichen im Dateinamen"

1 Like

Ah ok. Ich habe nur an meinen Laptop mit der Nextcloud getestet, die ja am Ende des Tages auch ein WebDAV Speicher ist. Keine Ahnung, hat vielleicht etwas mit der WebDAV Implementierung von Synology zu tun, oder mit der External Storage App?

Es ist auf jeden Fall kein generelles Linux oder WebDAV Problem. Trotzdem würde ich aber halt empfehlen, so wenig Sonderzeichen wie möglich zu verwenden, denn gearde in gemischten Umgebungen, mit extern angebunden Speichern und verschiedenen Applikationen, kann das gerne mal zu Probleme führen. Ja ich weiss, einfacher gesagt als getan. :wink:

Jup oder den NULL Character \0 als Escape Character, womit wir beim Grund wären, warum man dieses Zeichen nicht verwenden kann in UNIX/Linux Dateinamen :wink:

touch filename\ with\ spaces
1 Like

Natürlich nicht!

Weil die Synchronisation mit dem Synology Desktop-Client funktioniert ganz normal wenn das Pluszeichen im Dateinamen vorkommt.

Ich würde jetzt mal testen, ob es direkt via Webdav vom PC aus mit der Synology funktioniert (ohne den Sync Client). Wenn es dann auch nicht funktioniert, ist der Schuldige ziemlich sicher der WebDAV Server der Synology. Falls es vom PC aus funktioniert, liegt es nicht am Server, sondern am Client, was in diesem Fall, die External Storage App der Nextcloud wäre.

Btw. Habe mich auch noch kurz via Gnome Files via WebDAV mit meiner Nextcloud verbunden (anstatt via Sync Client) und Gnome FIles hat die Files aus meinem vorherigen Beitrag angezeigt und ich habe sie auch mit einem Texteditor öffnen können. Nextcloud als WebDAV Server und Gnome als WebDAV Client scheinen also die + Zeichen problemlos handeln zu können. Bleiben die External Storage App oder der Synology WebDAV Server als potentielle Verursacher des Problems übrig.

Heißer Tipp, vielen Dank!

Es funktioniert ganz normal mit Windows 11. Sowohl “Netzwerkadresse hinzufügen” als auch “Netzlaufwerk verbinden…” zeigt das Pluszeichen im Dateinamen an.

Habe folgenden Issue gefunden: [Bug]: Problem with external storage (WebDAV) and folder names with "+" in it, in combination with Synology WebDav server or rclone Webdav server · Issue #42932 · nextcloud/server · GitHub

…und so wie es aussieht, sollte das in 28.0.3 gefixt sein, dessen Release für den 22. Februar geplant ist: [stable28] dav: fix wrong decoding of pluses in URLs by backportbot[bot] · Pull Request #43236 · nextcloud/server · GitHub :slight_smile:

2 Likes