Unter Linux und anderen Unix-Systemen gibt es nur zwei Zeichen, die im Namen einer Datei oder eines Verzeichnisses nicht vorkommen dürfen, und zwar NUL '\0'
und Schrägstrich '/'
. Der Schrägstrich kann natürlich auch in einem Pfadnamen vorkommen und Verzeichnisbestandteile voneinander trennen.
Gerücht 1 Steven Bourne (der berühmte "Shell") soll ein Verzeichnis mit 254 Dateien gehabt haben, eine für jeden einzelnen Buchstaben (Zeichencode), der in einem Dateinamen vorkommen kann (außer /
, '\0'
; der Name .
war natürlich das aktuelle Verzeichnis). Es wurde zum Testen der Bourne-Shell verwendet und richtete bei unvorsichtigen Programmen, wie z.B. Backup-Programmen, routinemäßig großen Schaden an.
Andere Menschen haben die Regeln für Windows-Dateinamen behandelt, mit Links zu Microsoft y Wikipedia zu diesem Thema.
Beachten Sie, dass MacOS X ein Dateisystem hat, das Groß- und Kleinschreibung nicht berücksichtigt. Aktuelle Versionen scheinen den Doppelpunkt :
in Dateinamen, obwohl das historisch gesehen nicht immer der Fall war:
$ echo a:b > a:b
$ ls -l a:b
-rw-r--r-- 1 jonathanleffler staff 4 Nov 12 07:38 a:b
$
POSIX definiert eine Zeichensatz für portable Dateinamen bestehend aus:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 . _ -
Die Verwendung von Namen, die ausschließlich aus diesen Zeichen gebildet werden, vermeidet die meisten Probleme, obwohl Windows immer noch einige Komplikationen mit sich bringt.
1 Es waren Kernighan & Pike in ['The Practice of Programming'] (http://www.cs.princeton.edu/~bwk/tpop.webpage/), die dies in Kapitel 6, Testen, §6.5 Stresstests, sagten:
Als Steve Bourne seine Unix-Shell schrieb (die später als Bourne-Shell bekannt wurde), erstellte er ein Verzeichnis mit 254 Dateien mit einstelligen Namen, einen für jeden Byte-Wert außer '\0'
und Schrägstrich, die beiden Zeichen, die in Unix-Dateinamen nicht vorkommen dürfen. Er verwendete dieses Verzeichnis für alle möglichen Tests der Mustererkennung und Tokenisierung. (Das Testverzeichnis wurde natürlich von einem Programm erstellt.) Jahrelang war dieses Verzeichnis der Fluch von File-Tree-Walking-Programmen; es testete sie bis zur Zerstörung.
Beachten Sie, dass das Verzeichnis Einträge enthalten haben muss .
y ..
also waren es wohl eher 253 Dateien (und 2 Verzeichnisse) oder 255 Namenseinträge, als 254 Dateien. Dies beeinträchtigt jedoch nicht die Wirksamkeit der Anekdote oder der darin beschriebenen sorgfältigen Tests.
_TPOP war zuvor bei http://plan9.bell-labs.com/cm/cs/tpop y http://cm.bell-labs.com/cm/cs/tpop aber beide sind jetzt (2021-11-12) kaputt. Siehe auch Wikipedia unter TPOP ._