ubuntuusers.de

Dateinamen mit | (Pipe) im Namen

Status: Ungelöst | Ubuntu-Version: Ubuntu 7.10 (Gutsy Gibbon)
Antworten |

atlanx

Avatar von atlanx

Anmeldungsdatum:
21. Mai 2007

Beiträge: 291

Ich habe gerade festgestellt, dass sich Dateinamen mit einer Pipe im Namen anlegen lassen.

zb. "test | test.txt"

Warum geht das? Selbst auf NTFS-Dateisystemen funktioniert das mit dem ntfs-3g Treiber.

Ist das ein zulässiger Dateiname?

fred.reichbier

Anmeldungsdatum:
14. Dezember 2006

Beiträge: 350

Warum denn nicht? 😉
Auf ext3 sind so gut alle Zeichen außer / und \0 in Dateinamen zulässig: klick

phst

Anmeldungsdatum:
24. Juni 2007

Beiträge: 527

|, \, <, *, ?, " usw. sind nur für die Shell Steuerzeichen und können in Dateinamen beliebigen vorkommen (im Unterschied zu Windows).

atlanx

(Themenstarter)
Avatar von atlanx

Anmeldungsdatum:
21. Mai 2007

Beiträge: 291

Ja, das mit Windows hab ich grad gemerkt. Ich kann unter Windows die unter Ubuntu angelegte Datei nicht löschen, verschieben, umbenennen etc.

Pumbaa80 Team-Icon

Avatar von Pumbaa80

Anmeldungsdatum:
5. März 2007

Beiträge: 2130

Wohnort: Residenz des Rechts

Microsoft schafft es immer wieder, die eigenen Standards ad absurdum zu führen 😀

atlanx

(Themenstarter)
Avatar von atlanx

Anmeldungsdatum:
21. Mai 2007

Beiträge: 291

Hm, ist das jetzt ein Bug oder ein Feature(von Linux), dass man auf einer NTFS-Partition Dateien mit | im Dateinamen anlegen kann?

Aktuell tendiere ich noch zu Bug, weil ich keinen Vorteil darin sehe einen Dateinamen mit | anlegen zu können.

Pumbaa80 Team-Icon

Avatar von Pumbaa80

Anmeldungsdatum:
5. März 2007

Beiträge: 2130

Wohnort: Residenz des Rechts

Wieso sollte das ein Bug sein? Es besteht rein technisch gesehen kein Unterschied zwischen einem | und einem Leerzeichen. Oder hältst du es auch für einen Bug, dass man Leerzeichen im Dateinamen verwenden kann? 😉

jbob

Avatar von jbob

Anmeldungsdatum:
31. Dezember 2006

Beiträge: 81

Wikipedia schreibt dazu:

Erlaubte Zeichen im Dateinamen alle Zeichen außer '\0' (NUL) und '/'

Windows verbietet außerdem die folgenden Zeichen \ : * ? " < >

Laut Spezifikation sind also eigentlich alle Zeichen außer \0 und / erlaubt, aber Microsoft schafft es in der Implementierung ihres eigenen Dateisystems wohl nicht wirklich alle anderen Zeichen zuzulassen.

P.S. In der Liste von Wikipedia fehlt wohl noch '|'.

phst

Anmeldungsdatum:
24. Juni 2007

Beiträge: 527

Der Eintrag in der deutschen Wikipedia ist Unsinn. Es ist ja nicht einmal eine Quelle angegeben. Dass gewisse Zeichen durch die Windows-API verboten werden, hat einerseits technische (:, *, " und ?), andererseits historische Gründe (<, >, |). Der englische Artikel ist etwas aussagekräftiger und zitiert eine inoffizielle Quelle:

Allowed characters in filenames: In Posix namespace, any UTF-16 code unit (case sensitive) except U+0000 (NUL) and / (slash). In Win32 namespace, any UTF-16 code unit (case insensitive) except U+0000 (NUL) / (slash) \ (backslash) : (colon) * (asterisk) ? (Question mark) " (quote) < (less than) > (greater than) and | (pipe)

Noch zwei Links von Microsoft:
Naming a File
How to Remove Files with Reserved Names in Windows

atlanx

(Themenstarter)
Avatar von atlanx

Anmeldungsdatum:
21. Mai 2007

Beiträge: 291

Das ist ja krank:

The shell and the file system have different requirements. It is possible to create a path with the API that the shell UI cannot handle.

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

atlanx hat geschrieben:

Hm, ist das jetzt ein Bug oder ein Feature(von Linux), dass man auf einer NTFS-Partition Dateien mit | im Dateinamen anlegen kann?
Aktuell tendiere ich noch zu Bug, weil ich keinen Vorteil darin sehe einen Dateinamen mit | anlegen zu können.

Also, es gibt nen Unterschied was das Dateisystem kann, und was das Betriebssystem erlaubt.
Das NTFS Dateisystem erlaubt zwar solche Zeichen. Aber das OS erlaubt es nicht.

Und ein Dateisystem ist ja nicht an einem OS gebunden. Und du kannst ein Dateisystem ja mit jedem beliebigen OS nutzen. Zumindest sollte es so sein. Sofern es keine Propietären Dateisysteme gibt.

Antworten |