Wann wurde das Doppelpunkt-Zeichen: ein zulässiges Zeichen im Dateisystem?


3

:Ich habe gerade bemerkt, dass es auf Maverick funktioniert. Der Doppelpunkt ist gültig für Datei- und Verzeichnisnamen (ich habe ihn versehentlich für einen Dateinamen in Atom eingegeben).

Es kann jedoch kein Hinweis darauf gefunden werden, dass es gültig wird ( http://en.wikipedia.org/wiki/Hierarchical_File_System markiert es weiterhin als ungültig).

Es funktioniert im Atom-Editor.

Ich kann eine Datei mit dem Namen :nano erstellen .

Das funktioniert echo 'test' > : && cat :

In TextWrangler funktioniert dies nur, wenn die Datei bereits vorhanden ist, sie jedoch nicht erstellt wird (mit installierten Befehlszeilentools edit :).

Ist das neu von Mavericks? Arbeitet in Yosemite? Vor?

Edit: Noch ein paar Tests:

  • TextEdit erlaubt mir nicht, es einzugeben und es immer durch zu ersetzen -

  • Finder erlaubt mir nicht, einen Ordner mit dem Namen zu erstellen : Finder Screenshot

  • Eine :Datei über die Befehlszeile erstellt wird , wie angezeigt /in Finder .. und Doppelklick darauf wird es in TextEdit öffnen. TextEdit lädt den Inhalt, zeigt jedoch den Namen /in der Titelleiste an.


2
":" ist in Unix-Heritage-APIs zulässig (und "/" wird als Pfadbegrenzer verwendet), während "/" in MacOS-Heritige-APIs zulässig ist (und ":" als Begrenzer verwendet wird) und die beiden als vertauscht werden benötigt je nach Kontext - siehe diese vorherige Frage und das verlinkte Usenix-Papier .
Gordon Davisson

Also ist der Wikipedia-Artikel über HFS dann technisch falsch ..?
Ben

1
Ich sehe dort keinen Fehler. Es wird tatsächlich als "/" auf der physischen Festplatte gespeichert, im Dateisystemtreiber (Teil des Kernels) in ":" übersetzt und dann für die MacOS-Heritage-APIs wieder in "/" übersetzt . Auf einem HFS + -Volume ist es also "wirklich" ein "/".
Gordon Davisson

Antworten:


1

Dies ist auf den Unterschied zwischen Befehlszeile und GUI zurückzuführen. Wie im obigen Kommentar erwähnt, ist in UNIX / BSD ein Doppelpunkt (":") zulässig, da der Verzeichnisbegrenzer ein Schrägstrich ("/") ist. In der Benutzeroberfläche ist das Trennzeichen ein Doppelpunkt und ein Schrägstrich als Zeichen für eine Datei zulässig.

Mac OS X tauscht diese Zeichen je nachdem aus, wo Sie sie anzeigen.

Wenn eine Datei in der Befehlszeile angezeigt wird, wird ein Doppelpunkt angezeigt. Wenn es in der GUI angezeigt wird (z. B. Finder oder TextWrangler), wird ein Schrägstrich angezeigt.

Mit anderen Worten: Mit TextWrangler können Sie eine Datei mit dem Namen "/" erstellen und später dieselbe Datei in der Befehlszeile anzeigen, in der sie als ":" angezeigt wird.

Im Allgemeinen würde ich vermeiden, eines der Zeichen zu verwenden, wenn dies nicht durch eine bestimmte Namenskonvention erforderlich ist. Am Ende handelt es sich um einen Dateinamen, der sich nicht auf den Inhalt dieser Datei auswirkt. Es wird empfohlen, einen Unterstrich (oldskool) oder ein Leerzeichen zu verwenden.


Sie können TextWrangler nicht verwenden, um eine Datei mit dem Namen "/" zu erstellen
Ben

"In der GUI ist das Trennzeichen Doppelpunkt" ist auch falsch .. oder mehrdeutig
Ben

Ich habe es selbst nicht ausprobiert, aber ich bin sicher, dass Sie eine Datei in der GUI erstellen können, die den Buchstaben "/" enthält. Andererseits können Sie in der GUI keine Datei erstellen, die den Buchstaben ":" enthält. Entweder wird es während des versuchten Speicherns markiert oder es wird in ein freundlicheres Zeichen umgewandelt (abhängig von der verwendeten Anwendung). Betrachtet man den "Finder-Pfad", so ist der Doppelpunkt das Trennzeichen. Sie können versuchen, ein AppleScript zu schreiben. Wenn nicht ausdrücklich anders angegeben oder für die Befehlszeile vorgesehen, wird die durch Doppelpunkte getrennte Notation erwartet. Die Verwendung des UNIX-Schrägstrichs schlägt fehl, wenn er nicht konvertiert wird.
Phoenix

1

Diese Änderung trat zu Beginn von MacOS X (dh MacOS X 10) auf.

Dann wurde das Verzeichnis-Trennzeichen von HFS : in das Verzeichnis-Trennzeichen von UFS geändert /. Seitdem ist das Finderfür die Erstellung des folgenden Mappings zuständig:

/ → :
: → /

Ich frage mich, warum sie sich immer noch um das Mapping kümmern. Das Dateisystem unterstützt es eindeutig. Es sind nur die GUI-Apps, die ein seltsames Fallback-Verhalten annehmen.
Ben
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.