Ich besitze keinen Mac und kann daher nichts zu Dingen wie „ ?
oder“ :
in Dateinamen sagen …
Ich interessiere mich insbesondere für den Dos/Windows®-Pfadtrenner : \
. Ich weiß, dass es in Linux ein zulässiges Zeichen ist, das in FAT32-Dateinamen verwendet werden kann.(Windows® wird eine Beschädigung des Volumes melden).
Gilt das gleiche für OSX? Oder wird beim Ausführen im übergeordneten Verzeichnis mkdir ..\\dirent
Folgendes erstellt:dirent
(immer noch im Fall von FAT32, da ich das Verhalten auf HFS bereits kenne) ?
Natürlich spreche ich über den Fall, in dem das Volume über den Finder gemountet wird.
Je nach Antwort könnte dies die Existenz einer Schwachstelle in einer gängigen Quellcodeverwaltungssoftware bestätigen …
Antwort1
Das ist eine interessante Frage, die ich selbst auf meinem MacBook mit dem Betriebssystem „OS X El Capitan“ herausfinden musste. Man muss zwischen nicht erlaubten Zeichen im Finder/Anwendungen, die den Finder verwenden (z. B. Texteditor), und der Kommandozeile unterscheiden.
Zunächst einmal ist der Backslash "\" wie jedes normale Zeichen sowohl im Finder als auch in der Befehlszeile. Sie können also eine Datei oder ein Verzeichnis wie A\B erstellen. Gleiches gilt für das Fragezeichen.
Beim Doppelpunkt ":" wird es kompliziert. Wenn Sie in der Befehlszeile eine Datei mit dem Namen A:B erstellen, wird sie zwar in der Befehlszeile richtig erstellt und angezeigt, im Finder jedoch als A/B angezeigt. Und wenn Sie versuchen, im Finder eine Datei mit einem Doppelpunkt zu erstellen, z. B. C:D, erhalten Sie die Fehlermeldung „Der Name C:D kann nicht verwendet werden. Versuchen Sie, einen Namen mit weniger Zeichen oder ohne Satzzeichen zu verwenden.“
Das Erstellen einer Datei oder eines Verzeichnisses, das mit einem Punkt "." beginnt, ist problemlos über die Befehlszeile möglich. Da diese Art von Dateien und Verzeichnissen jedoch für versteckte Dateien und Verzeichnisse verwendet wird, können Sie sie nicht im Finder erstellen. Stattdessen erhalten Sie ein Fehlerfenster mit der Meldung "Sie können keinen Namen verwenden, der mit einem Punkt "." beginnt, da diese Namen für das System reserviert sind. Bitte wählen Sie einen anderen Namen." Wenn Sie den Befehl ausführen
mkdir ..\\dirent
in der Kommandozeile, dann wird das versteckte Verzeichnis mit dem Namen
..\\dirent
im aktuellen Verzeichnis, also nicht in einem Verzeichnis, das dirent
im übergeordneten Verzeichnis aufgerufen wird.
Übrigens: Ich habe dies mit einem FAT32-formatierten USB-Stick getestet, aber selbst wenn ich eine NTFS-formatierte externe Festplatte oder das interne HFS+-formatierte interne SSD-Laufwerk verwende, verhält es sich gleich.
Wenn ich mir nun alle diese Dateien und Verzeichnisse (die ich auf meinem MacBook auf den USB-Stick geschrieben habe) im Windows Explorer (mit Windows 10) anschaue, dann werden sowohl der Backslash, der Doppelpunkt als auch das Fragezeichen anders dargestellt als auf dem MacBook, jeweils mit dem gleichen Sonderzeichen, das ich weder auf meiner Tastatur erzeugen noch richtig kopieren und einfügen kann - das Einfügen in diesem Fenster hier erzeugt "", was nicht aussieht wie das im Windows Explorer angezeigte Zeichen. Im Windows Explorer sieht es ähnlich aus wie der Punkt ".", allerdings befindet sich dieser Punkt etwas oberhalb des normalen Punkts, also senkrecht in der Mitte.
Ich hoffe ich konnte dir irgendwie weiterhelfen.