Wie @ sergiy-kolodyazhnyy sagte, hängt die maximale Dateinamenlänge vom Dateisystem ab und die überwiegende Mehrheit begrenzt die Dateinamenlängen auf 255 Bytes.
Eine bemerkenswerte Auslassung in seinem Diagramm sind optische Medien. Während UDF und die Rock Ridge-Erweiterungen für Dateinamen dieselbe Beschränkung von 255 Zeichen haben, gelten für ISO9660 ohne Rock Ridge und Joliet viel strengere Beschränkungen, auf die Sie möglicherweise tatsächlich stoßen, wenn Sie beispielsweise youtube-dl
Downloads sichern.
Joliet-Dateinamen sind entweder auf 64 UTF-16-Codepunkte oder auf 103 davon beschränkt, wenn Ihr Disc-Mastering-Programm die Option hat, auf eine Weise von der Spezifikation abzuweichen, die in der Praxis keinen Schaden zu verursachen scheint.
Ebenso sind ISO 9660 Level 2 und 3 ohne die Rock Ridge-Erweiterungen auf Dateinamen mit 31 oder 37 Zeichen beschränkt, wenn Sie schnell und locker mit der Spezifikation spielen.
ISO 9660: 1999, das wird von genisoimage unterstützt , aber nicht von Frontends wie K3b, hat eine Grenze von entweder 207 Bytes (ohne Rock Ridge) oder 197 Bytes (mit Rock Ridge).
(Quelle: Die genisoimage
Manpage)
Die maximale Pfadlänge ist ein großes Missverständnis. Für die meisten Linux-Dateisysteme gibt es keine.
Es gibt eine Konstante mit dem Namen PATH_MAX
, aber es ist nur das Maximum für bestimmten POSIX - APIs , die Sie arbeiten , um .
Die einzigen konsequenten Ausnahmen von dieser Konvention "Keine Begrenzung der Pfadlänge" sind FAT32 und exFAT (32.760 Unicode-Zeichen), NTFS und ReFS (32.767 Unicode-Zeichen), UDF (1.023 Byte) und ISO 9660 (unklar, aber ich habe gesehen es wird als 180, 207, 212 oder 222 Bytes angegeben).
Dies kann leicht demonstriert werden, indem dieses kleine Python-Programm ausgeführt und anschließend die resultierenden Verzeichnisse untersucht werden.
import os
for X in range(20):
os.mkdir('x' * 255)
os.chdir('x' * 255)
My bash
, das den gesamten Pfad in der Eingabeaufforderung anzeigt, wird Probleme damit haben. Meine zsh
, die nur den aktuellen Ordner in der Eingabeaufforderung anzeigt, hat jedoch keine Probleme und verfügt sogar über eine integrierte pwd
Funktion, die den gesamten Pfad mit mehr als 5000 Byte problemlos anzeigen kann.