Was sind ungültige Zeichen für einen Dateinamen unter OS X?


22

Ich habe Probleme beim Auffinden dieser Informationen, und durch Ausprobieren erfahre ich, dass möglicherweise keine vorhanden sind. Was sind ungültige Zeichen für einen Dateinamen unter OS X Lion (10.7)?


1
Einfacher Schrägstrich? Einfacher Backslash? Einzel- oder Doppelstunde?

Alle Slash-Combos und Singles scheinen zu funktionieren, aber eine einzelne und eine doppelte Periode schlagen fehl, weil sie bereits verwendet werden. Ich hoffe, es gibt mehr als das .... :)
Rodney Foley

Sie können keine ASCII-NUL verwenden. Denken Sie eine Weile nach und entdecken Sie vielleicht, warum Sie selbst…
Donal Fellows

@Donal ASCII NUL kann man nicht einfach "tippen" oder versehentlich problematisch machen.
Rodney Foley

1
Können Sie uns einen Zusammenhang geben, Rodney? Bei der Beantwortung dieser Frage wäre es sehr hilfreich, wenn wir ein wenig darüber wüssten, was Sie versuchen ... AFAIK, es gibt ein paar potenzielle Probleme: ehrliche, verbotene Zeichen, Zeichen, die nicht als solche eingegeben werden können Pfad in einer Terminal-Shell und Zeichen, die im Finder nicht richtig angezeigt werden.
Shog9

Antworten:


7

HFS Plus ermöglicht " Unicode , jedes Zeichen, einschließlich NUL. Einige Zeichen können durch Betriebssystem-APIs aus älteren Gründen eingeschränkt werden".


3
Techincally das HFS + Dateisystem ermöglicht es, alle Unicode - Zeichen (da es Namen intern als Pascal - Strings mit einer Länge von 2 Byte repräsentiert), aber AFAIK keine der von OS X bereitgestellt APIs können Sie erstellen / Öffnen von Dateien mit einem Schrägstrich '/'oder NUL '\0'in ihnen .
Adam Rosenfield

Wirkstoffe wie Carbon oder Kakao? Ich nehme an, Terminal unterliegt solchen Einschränkungen, aber was ist mit Skripten, die von anderen Programmen ausgeführt werden, wie beispielsweise launchd?
Tobylane

8

Was sind ungültige Zeichen für einen Dateinamen unter OS X?

Wiki HFS + :

Zulässige Zeichen in Dateinamen Unicode, beliebige Zeichen, einschließlich NUL. OS-APIs können einige Zeichen aus älteren Gründen einschränken


Finder erlaubt derzeit keine Eingabe von Doppelpunkten in Dateinamen, aber es erlaubt die Eingabe von Backslashes. Die Zeichen, die im Finder als Schrägstriche angezeigt werden, werden jedoch als Doppelpunkte in Muscheln angezeigt und umgekehrt. Finder erlaubt auch keine ASCII-Steuerzeichen.


Bash schien alle Steuerzeichen außer \000(NUL) zuzulassen . Ich habe es getestet, indem ich die Ausgabe von:

for i in {1..31} 127 0; do echo touch \\$(bc <<< "obase=8;$i"); done

2

BEARBEITET

Laut Wikipedia ist das einzige ungültige Zeichen der Schrägstrich /, jedoch auf der UNIX-Ebene.


2
Möglicherweise :ist dies unter Mac OS Classic verboten, aber unter Mac OS X schon gar nicht - touch foo:barfunktioniert einwandfrei.
Adam Rosenfield

1
Die Antwort wurde aktualisiert. Gerne können Sie Ihre Ablehnung entfernen.

5
@Adam: :ist in der „Unix-Ebene“ gültig, wird jedoch /in die „Mac- Ebene“ (dh Finder, die meisten dateibezogenen Dialoge usw.) übersetzt / aus diesen übersetzt. In „HFS-Pfaden“ wird der Doppelpunkt als Trennzeichen verwendet “Und der Schrägstrich wird als Trennzeichen in„ POSIX-Pfaden “verwendet, sodass eine bidirektionale Übersetzung erfolgt, je nachdem, mit welcher„ Ebene “Sie arbeiten.
Chris Johnsen

2
Also kein Schrägstrich ( /) oder Doppelpunkt ( :), um sicher zu sein?
Nicolas Miari

2
@NicolasMiari Ja. Finder.app lässt Sie keinen Doppelpunkt eingeben und funktioniert nicht ordnungsgemäß mit Dateinamen, die diesen enthalten. In der UNIX-Ebene können Sie nicht mit Dateien arbeiten, die einen Schrägstrich enthalten (oder besser gesagt, sie wird in einen Doppelpunkt übersetzt). Und dann gibt es noch andere Anwendungen (wie Microsoft Word), die daran ersticken. Wenn Sie beispielsweise ein Dokument in TextEdit.app unter dem Dateinamen foo/bar.docx(der funktioniert) speichern , kann Microsoft Word es nicht öffnen.
Konrad Rudolph
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.